求 教 高 手--多 线 程 问 题

zwlawrence 2006-05-05 12:40:55
初学多线程,做练习时发现一个问题解决不了,请英雄解答  呵呵,先谢过了
做了一个窗体,窗体上有一个按钮和一个文本框(text1),我需要按下按钮后计算1加到99999...的结果,并将结果显示在text1上。然后我写了一个类继承Thread,如下
public class MyThread extends Thread{
public void run(){
double sum = 0;
for (int i = 0; i < 99999999; i++) {
sum = sum + i;
}
}
}
我想要把结果显示到text1上时,就写了
text1.setText(" " + sum);
但是这个却不成功,请问如何能在这个线程类中调用窗口类中的text1
...全文
162 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
linanbox21 2006-05-06
  • 打赏
  • 举报
回复
SUM是局部变量吧,如果想在两个线程见通讯要用到管道流来操作
errorfun 2006-05-05
  • 打赏
  • 举报
回复
使用侦听器,当值改变时,通知窗口中的控件去更新内容,这个是AWT本身就有的通知者模式(或者叫MVC)
Dreava 2006-05-05
  • 打赏
  • 举报
回复
就是啊,sum应该定义成实例变量
还要就是sum非String,在setText的时候要不要进行类型转换啊
String.valueOf(sum);
bingohu 2006-05-05
  • 打赏
  • 举报
回复
public void run(){
double sum = 0;//sum是run()的局部变量,外部怎么可以直接拿来使用?
for (int i = 0; i < 99999999; i++) {
sum = sum + i;
}
zwlawrence 2006-05-05
  • 打赏
  • 举报
回复
我直接在线和类MyThread里面写text1.setText(" " + sum);   会报错啊
楼上的帅哥讲详细点吧,谢过
千里冰封820 2006-05-05
  • 打赏
  • 举报
回复
直接把你的LABEL的引用给它不就可以了吗
zwlawrence 2006-05-05
  • 打赏
  • 举报
回复
哦,写错了,但是就这个意思,呵呵
qq14923349 2006-05-05
  • 打赏
  • 举报
回复
i是int 值,99999999?
zwlawrence 2006-05-05
  • 打赏
  • 举报
回复
我只是做练习嘛
zhengjing01 2006-05-05
  • 打赏
  • 举报
回复
如果只显示结果,有必要用线程吗?

62,616

社区成员

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

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