代码实现的功能:点击开始按钮,界面连续打印一句话,点击结束按钮,停止打印。
主要步骤:开始按钮动作监听器内使用多线程控制输出语句,多线程内使用停止按钮。
在这里插入代码片 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); } }