如何为MainWindow自定义消息? MainWindow中开了一个线程来处理数据,当数据处理完了,我想让它通知Mainwindow来更新界面上的信息,怎么实现呢?Java中是不是也有类似Windows的消息循环机制呢?用户能够重载自定义吗?谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 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+"条数据!"); 在主类中加入listener监听线程是否完成,然后依此进行动作。 String的contains报错。。。 String 字符索引(indexof) 偏移量的转换。 JDBC3.0的scroll resultset,哪位朋友可以给个例子或介绍,谢谢!!! 画好图了,如何生成一个图片文件,比如bmp格式的 请问为何在链接的时候提示Jpcap中的GetDeviceList()错误 JAVA程序如何在网络中运行起来? 谁给我提供一个如何操作arrays的范例? 英语四级考了59.郁闷啊~ 做个调查 大专毕业一年工作经验 工资是多少? 在Java中,控件位置问题 急~~~字符串比较问题! help help..........!!!!
例如:
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+"条数据!");