如何为MainWindow自定义消息?

Takethat 2005-12-14 03:13:33
MainWindow中开了一个线程来处理数据,当数据处理完了,我想让它通知Mainwindow来更新界面上的信息,怎么实现呢?
Java中是不是也有类似Windows的消息循环机制呢?用户能够重载自定义吗?
谢谢!
...全文
91 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
f_acme 2006-01-07
  • 打赏
  • 举报
回复
在主类中加入listener监听线程是否完成,然后依此进行动作。
huanzhugege 2006-01-05
  • 打赏
  • 举报
回复
java中没有消息循环机制,java中是通过接口来实现类似delphi、vb、C#的事件机制的。你首先需要定义一个消息接口,接口中定义一个更新界面的方法,然后在主界面中类中定义一个实现这个接口的内部类。然后把这个内部类的一个实例付给那个执行线程,这样在执行线程中就可以调用接口方法来更新界面了。
例如:
public interface IProgressListener {

public void onProgress(String msg);
public void onAddMsg(String msg);
}


class ImportTask implements Runnable
{
public void run() {
btnImport.setEnabled(false);
beginInput();
btnImport.setEnabled(true);
}

}
}

beginInput的实现:
Director d = new Director();
d.setProgressListener(progressListener);
protected void beginInput()
d.parseXML(txtField.getText());


progressListener的定义:
IProgressListener progressListener = new IProgressListener(){
public void onProgress(String msg)
{
labelProgress.setText(msg);
}

public void onAddMsg(String msg) {
memoResult.append(msg);
memoResult.append("\n");
}
};


在Director类中
for(int i=0,n=20;i<n;i++)
progressListener.onProgress("已经导入"+i+"条数据!");

Takethat 2005-12-15
  • 打赏
  • 举报
回复
ding

62,614

社区成员

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

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