java Thread 单个按钮实现文本动画的暂停和继续

happyyuechun 2009-04-04 09:02:43
我想用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中搜索过,本网站有一个类似的问题,解决办法和我的差不多,但还是不能实现。
大家帮帮忙吧,谢谢啦!
...全文
260 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
happyyuechun 2009-04-06
  • 打赏
  • 举报
回复
哦,谢谢,我试试看。
ty_tarena_pger 2009-04-04
  • 打赏
  • 举报
回复
日,发了两次,卡了
ty_tarena_pger 2009-04-04
  • 打赏
  • 举报
回复
不用用Runnable接口的,用Callable()的,那个函数包我忘了
ty_tarena_pger 2009-04-04
  • 打赏
  • 举报
回复
不用用Runnable接口的,用Callable()的,那个函数包我忘了
chentao19860501 2009-04-04
  • 打赏
  • 举报
回复
严重关注!!

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧