1

我正在开发一个项目,它执行以下操作:

1.截断临时表T1。

2. 在临时表 T1 中插入几千行。

3.执行一个包含一些提交语句的过程。

4.将表T1中的行插入其他相同的表(相对于结构)T2

5.再执行2个程序。

现在我制作了一个包含 TextArea 的摇摆 UI,我想在其上打印交易状态。像这样的东西

读取 Excel 文件.. 验证 Excel 文件.. 将条目插入表 T1.. 等等

我做了以下方法来更新每个步骤的状态。

public void updateStatus(String message){
        String temp = this.statusText.getText();
        this.statusText.setText(temp  + message +  "\n");
}

调用此方法以及我所做的语句

log.debug(message)为我做这项工作!然而,这使我的代码设计复杂化。现在每个 DAO 组件都依赖于这个方法。谁能给我一个更好的设计选择。

提前致谢 !

4

1 回答 1

2

log.debug(message) 为我完成了这项工作!然而,这使我的代码设计复杂化。现在每个 DAO 组件都依赖于这个方法。谁能给我一个更好的设计选择。

  • 您对Swing中的 Concurency 有疑问,请包装 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 
于 2013-08-26T11:08:59.853 回答