【发布时间】:2011-05-05 07:48:52
【问题描述】:
我有这个 JTable,我在其中实现了自动刷新功能,以每 1 分钟或 (60000l) 显示剩余时间。
但是当要插入的行还没有完成时我遇到了这个问题(数据编码是在 JTable 本身上完成的)数据丢失了。为了防止任何数据丢失,并且不删除自动刷新功能。
是否可以暂停线程(SwingWorker(Void, Void) 用于自动刷新功能)以让插入/更新数据不会丢失?
【问题讨论】:
-
“数据编码在 JTable 本身上完成”是什么意思;这句话看起来像是一种设计气味......你有一些代码给我们看吗?特别是 swingworker 和 table 模型的检查很重要;另外,通常 SwingWorker 只使用一次,似乎不适合您的用例(自动刷新)您如何使用它?
-
好吧,我在 SwingWorker 中创建了另一个线程(错误)。现在要让它成为一个线程......
-
当然,您仍然必须记住,对 JTable(或其 TableModel)的更改必须在 EDT 内部执行,因此您的线程必须使用 invokeLater/invokeAndWait 来填充其结果到用户界面。
-
当我使用 SwingUtilies 时。 run 方法不会触发和冻结应用程序...(抱歉回复晚了。)
标签: java swing jtable swingworker