阿飞大爷 2015-09-25 12:56 采纳率: 0%
浏览 1721

下面是一段Java代码,里面有几处看不懂,望大神指教,不胜感激。

package 线程;

import java.awt.*;
import java.awt.event.*;

import javax.swing.*;

public class TestThread extends JFrame {
/**
*
*/
//private static final long serialVersionUID = 1L;
JPanel jPanel1 = new JPanel();
JButton startButton = new JButton("start");
JButton stopButton = new JButton("stop");
MyThread thread = null;
private boolean isContinue;
public TestThread() {
try {
jbInit();
} catch (Exception e) {
e.printStackTrace();
}
}

private  void jbInit() throws Exception {


    startButton.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            startButton_actionPerformed(e);
        }
    });

    stopButton.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(ActionEvent e) {
            stopButton_actionPerformed(e);
        }
    });

    Container con=getContentPane();
    con.add(jPanel1, BorderLayout.CENTER);
    jPanel1.add(startButton);
    startButton.setBounds(36, 105, 82, 30);
    jPanel1.add(stopButton);
    stopButton.setBounds(160, 108, 100, 31);

}

 void startButton_actionPerformed(ActionEvent e) {
    if (thread != null)//这是啥意思?
        isContinue=false;
    thread = new MyThread();//为什么我改为MyThread thread=new MyThread();运行会报错?
    thread.start();
}

void stopButton_actionPerformed(ActionEvent e) {
    if (thread != null)
        isContinue=false;
    thread = null;//这又是啥意思?
}

public static void main(String[] args) {
    TestThread test = new TestThread();
    test.setBounds(300,300,300, 80);
    test.setVisible(true);
}

private class MyThread extends Thread {
    public MyThread() {
        //isContinue=true;//为什么不在意开头哪里就定义iscontinue=true?
    }

    public void run() {
        System.out.println("\n\n");
        while (true && isContinue) {
            try {
                Thread.sleep(200);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println("Java 编程词典\thttp://www.mrbccd.com");
        }
    }
}

}

  • 写回答

5条回答 默认 最新

  • 无心含笑 2015-09-25 13:06
    关注

    if (thread != null)//这是啥意思? 如果线程不为空
    thread = new MyThread();//为什么我改为MyThread thread=new MyThread();运行会报错?
    上面已经定义我thread ,现在定义thread ,生命周期是在当前函数里面。出了函数就没有了,所以会运行错误 。

    thread = null;//这又是啥意思?
    线程为空

    /isContinue=true;//为什么不在意开头哪里就定义iscontinue=true?
    这个看不懂你说的意思?

    评论

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)