代码实现的功能:点击开始按钮,界面连续打印一句话,点击结束按钮,停止打印。
主要步骤:开始按钮动作监听器内使用多线程控制输出语句,多线程内使用停止按钮。
在这里插入代码片
package THREAD;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.WindowConstants;
public class Automove {
Thread t;//创建一个多线程全局变量
boolean b;//创建一个布尔型变量
public static void main(String[] args) {
Automove a=new Automove();
a.creat();
}
public void creat() {
JFrame f=new JFrame();
f.setLayout(null);//使用绝对布局
Container c=f.getContentPane();
JPanel p=new JPanel();
JButton b1=new JButton("开始");
JButton b2=new JButton("结束");
b1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
b=true;
t=new Thread(new Runnable() {
public void run() {
while(b) {
System.out.println("你要悄悄努力,然后惊艳所有人");
try {
Thread.sleep(500);//线程休眠
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
b2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
b=false;
}
});
}
}
});
t.start();
}
});
p.add(b1);
p.add(b2);
p.setBounds(50, 50, 120, 90);
c.add(p);
f.setBounds(150, 150, 300, 300);
f.setVisible(true);
f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
}