如题/**
 * 原题:当用户单击"启动线程"时,在控制台持续打印一段话
 * 当用户单击"中断线程"时,控制台结束打印.
 */package com.thread;import java.awt.Container;
import java.awt.event.*;import javax.swing.*;public class print extends JFrame {
Thread t = new Thread(new Runnable() { // 实现Runnable接口
public void run() {
while (true) {
System.out.println("Java test");
t.yield();// 通知线程礼让
try {
t.sleep(2000);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}); public print() {
Container c = getContentPane();
JButton b1 = new JButton("启动线程");
JButton b2 = new JButton("中断线程");
setLayout(null); // 按钮布局方式
b1.setBounds(10, 70, 120, 30);// 按钮b1位置
b2.setBounds(160, 70, 120, 30);// 按钮b2位置
c.add(b1);
c.add(b2); t.setPriority(1);// 设定线程优先级 b1.addActionListener(new ActionListener() {// b1按钮事件 @Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if (!t.isAlive()) {
t.run();
}
} }); b2.addActionListener(new ActionListener() {// b2按钮事件 @Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if (t.isAlive()) {
t.interrupt();
}
} }); // 窗体样式
setTitle("控制线程");
setSize(300, 200);
setResizable(false);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
setVisible(true);
} /**
 * @param args
 */
public static void main(String[] args) {
// TODO Auto-generated method stub
new print();
}}