gpt4 book ai didi

java - 在非 AWT 线程中更新 AbstractTableModel 中的数据的最佳实践

转载 作者:行者123 更新时间:2023-11-29 07:19:18 25 4
gpt4 key购买 nike

我已经将 AbstractTableModel 子类化,用作我的 JTable 的模型。每当添加数据时,我都会在 AWT 线程中调用 fireTableRowsInserted()。通过使用同步方法,对我的底层容器的所有访问都是线程安全的。

到目前为止,这种模式对我来说效果很好。但是现在我想从列表中删除数据我已经意识到我有一个线程问题。如果我删除一行并在 AWT 线程中调用 fireTableRowsDeleted(),我仍然可以为现在不再存在的行索引调用 getValueAt()

在 AWT 线程外对表模型执行操作的最佳实践是什么?

最佳答案

恕我直言,最佳做法是避免这样做。将另一个线程对模型的每次访问包装在 Runnable 中,并使用 SwingUtilities.invokeLater 更新模型。

关于java - 在非 AWT 线程中更新 AbstractTableModel 中的数据的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6670128/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com