import java.awt.BorderLayout;
import java.awt.EventQueue;
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.JScrollPane;
import javax.swing.JTextArea;
public class StopThreadDemo extends JFrame implements Runnable {
private JTextArea textArea;
private boolean runing = true;
public StopThreadDemo() {
super();
setBounds(100,100,232,241);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
final JPanel panel = new JPanel();
getContentPane().add(panel,BorderLayout.SOUTH);
final JButton button = new JButton("stop");
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
do_button_actionPerformed(e);
}
});
panel.add(button);
final JScrollPane scrollPane = new JScrollPane();
getContentPane().add(scrollPane,BorderLayout.CENTER);
textArea = new JTextArea();
textArea.setLineWrap(true);
scrollPane.setViewportView(textArea);//滚动面板控制文本域组件
}
/*
* 线程的核心方法
* (non-Javadoc)
* @see java.lang.Runnable#run()
*/
@Override
public void run() {
// TODO Auto-generated method stub
int count = 0;
while(runing) {
try {
Thread.sleep(100);
textArea.append(++count+" ");
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
protected void do_button_actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
stopThread();
}
public void stopThread() {
// TODO Auto-generated method stub
this.runing = false;
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
StopThreadDemo frame = new StopThreadDemo();
new Thread(frame).start();
frame.setVisible(true);
}
});
}
}
java 之 停止多线程示例
最新推荐文章于 2022-01-04 15:21:49 发布