黑马程序员技术交流社区
标题:
猜数小程序中的休眠问题
[打印本页]
作者:
施大勇
时间:
2013-9-23 16:33
标题:
猜数小程序中的休眠问题
本帖最后由 施大勇 于 2013-9-28 15:28 编辑
package lesson4;
import java.awt.BorderLayout;
import java.awt.Container;
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.JTextField;
public class ActionDemo extends JFrame {
/**
* 动作事件的处理,可以作为一个猜数的小应用。
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
ActionDemo frame = new ActionDemo();
frame.setVisible(true);
}
});
}
private JTextField numText;
public ActionDemo() {
super();
setBounds(100, 100, 500, 400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container container = getContentPane();
container.setLayout(new BorderLayout());
JPanel topPanel = new JPanel();
numText = new JTextField(5);
topPanel.add(numText);
JPanel buttomPanel = new JPanel();
JButton button_1 = new JButton("开始");
JButton button_2 = new JButton("结束");
buttomPanel.add(button_1);
buttomPanel.add(button_2);
container.add(topPanel);
container.add(buttomPanel, BorderLayout.SOUTH);
button_1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
do_button_1_ActionPerformed();
}
});
button_2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
do_button_2_ActionPerformed();
}
});
}
private RandomThread random=new RandomThread();
class RandomThread extends Thread{
boolean isStart=true;
public void run(){
while(isStart){
//保证随机数字不停的变化,休眠是必不可少的,这里不明白休眠起的作用,求解?????????
//大家可以将休眠去掉,之后数字只显示一次,就不在变化了。
try {
Thread.sleep(1);
} catch (InterruptedException e) {
e.printStackTrace();
}
final int num = (int) (Math.random() * 10); // 生成随机数
EventQueue.invokeLater(new Runnable() {
public void run() {
numText.setText(num + "");
}
});
}
}
public void stopStarat(){
this.isStart=false;
}
}
protected void do_button_2_ActionPerformed() {
if(random!=null){
random.stopStarat();
}
}
protected void do_button_1_ActionPerformed() {
if(random!=null)
random.stopStarat();
random=new RandomThread();
random.start();
}
}
复制代码
作者:
黄文伯
时间:
2013-9-23 18:29
亲,如问题已解决请将分类的“未解决”改为“已解决”。 以后的问题贴也要及时更改分类哦~
作者:
黄文伯
时间:
2013-9-23 18:31
建议将代码放在代码块中方便大家阅读!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2