java Thread 单个按钮实现文本动画的暂停和继续
我想用Java编一个可以实现动态显示文本(就像抽奖一样一次显示一条信息)的程序,用一个按钮来实现暂停和继续。但我现在写好的程序只会一直动,不能暂停。
我写了一个实现了Runnable接口的类panelRunnable代码如下:
class panelRunnable implements Runnable {
public panelRunnable(DianmingPanel apanel) {
stu = new StudentGet("information.txt");//是为了读取信息
mypanel = apanel;
}
public void setRun(boolean b) {
run = b;
//System.out.println(run);
}
public void run() {
try {
while (run==true) {
int n = (int) (Math.random() * stu.getCount());
mypanel.setImgAndText(n);//跟新信息
mypanel.repaint();
Thread.sleep(DELAY);
//System.out.println(run);
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
private boolean run;
private StudentGet stu;
private DianmingPanel mypanel;
}
而我的actionPerformed是这样写的:
public void actionPerformed(ActionEvent event) {
num++;//为了计数,奇数次按下时run为true,偶数次按下时run为false
panelRunnable r = new panelRunnable(panel);
if ((num % 2) == 1) {
r.setRun(true);
}else{
r.setRun(false);
}
Thread t = new Thread(r);
t.start();
}
我在setRun中输出的run为false,但在run中都为true。
我已经在Google中搜索过,本网站有一个类似的问题,解决办法和我的差不多,但还是不能实现。
大家帮帮忙吧,谢谢啦!