我正在开发一个执行以下操作的项目:
1.截断临时表T1。
2.将几千行插入到临时表T1中。
3.执行一个包含一些提交语句的过程。
4.将表T1中的行插入到其他相同的表T2中(就结构而言)
5.再执行2个步骤。
现在,我已经创建了一个摆动UI,其中包含要打印交易状态的TextArea。像这样
正在读取Excel文件。
验证Excel文件
将条目插入表T1 ..等
我已采用以下方法在每个步骤中更新状态。
public void updateStatus(String message){
String temp = this.statusText.getText();
this.statusText.setText(temp + message + "\n");
}
在我做的语句中调用此方法
log.debug(message)
为我做这份工作!但是,这使我的代码设计复杂化。现在,每个DAO组件都依赖于此方法。谁能建议我一个更好的设计方案。提前致谢 !
最佳答案
log.debug(message)为我完成了工作!但是,这使我的工作变得复杂
代码设计。现在,每个DAO组件都依赖于此方法。能够
有人建议我一个更好的设计方案。
您对Concurency in Swing有问题,请包装statusText.append(message +“ \ n”);到invokeLater
,
Swing是单线程的,并且对已经可见的Swing GUi的所有更新必须在Event Dispatch Thread上完成
也许您可以看一下SwingWorker,从发布的说明中看不到什么,只有那可能是长期运行的,谈论着EDT问题
减少处理器消耗,并使用适当的方法将新的String
附加到已经可见的JTextArea
上,请使用statusText.append(message + "\n");
而不是很困难
。
String temp = this.statusText.getText(); // take all string from JTextArea
this.statusText.setText(temp + message + "\n"); // append() a new line to