JTable 在自动刷新方案上插入数据

发布于 2024-11-04 21:13:44 字数 202 浏览 2 评论 0原文

我有这个 JTable,其中我实现了自动刷新功能,每 1 分钟或 (60000l) 显示剩余时间。

但是当要插入的行尚未完成(数据编码在 JTable 本身上完成)时,我遇到了这个问题,数据丢失了。为了防止任何数据丢失并且不删除自动刷新功能。

是否可以暂停线程(SwingWorker(Void, Void) 用于自动刷新功能)以保证插入/更新数据不会丢失?

I have this JTable in which I have implemented an auto-refresh feature to display remaining time every 1minute or (60000l).

But I'm getting this problem when the row to be inserted isn't done yet (data encoding is done on the JTable itself) the data is lost. To prevent any data loss and without removing the auto-refresh feature.

Is it possible to pause the Thread (SwingWorker(Void, Void) was used for the auto-refresh feature) to give way that to be inserting / updating data is not lost?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

轻许诺言 2024-11-11 21:13:44

确保自动刷新和更新发生在同一线程上。这将阻止自动刷新执行,直到当前更新完成。

事件调度线程 (EDT) 是一个很好的候选者,特别是因为 Swing 已经包含了对 EDT 上的操作进行排队的框架。

public void autorefresh() {
    SwingUtilities.invokeLater(
       new Runnable() { 
          ...
          // code to request refresh goes here. 
       }
    );
}

Make sure the auto-refresh and the updating happen on the same thread. This will prevent the auto-refresh from executing until the current update is done.

The Event Dispatch Thread (EDT) is a good candidate, especially as Swing already contains the framework to queue operations on the EDT.

public void autorefresh() {
    SwingUtilities.invokeLater(
       new Runnable() { 
          ...
          // code to request refresh goes here. 
       }
    );
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文