- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的应用程序中有很多 JTree,它们都使用同一自定义 TreeModel 类的不同实例(具有不同的选项)。我试图添加一些线程来加快速度,因为 getChildren() 成员需要一段时间才能运行,我向 TreeModel 添加了一个 SwingWorker 子类,并在 getChildren() 中创建了该工作线程的实例并执行它,然后返回它的 get() 结果。
我不断收到 ConcurrentModificationExceptions,并且我知道我应该同步某些内容,但不确定是什么。有人对如何保持我的 TreeModel 安全响应有任何建议吗?
谢谢!约书亚
最佳答案
首先,我想知道您为什么尝试使用线程来加快速度。是 CPU 限制操作,还是网络/磁盘限制?
您的描述看起来好像您的 getChildren
在返回之前等待操作完成。这对于多核硬件上的并行操作可能很有用,但不是通用模型。通常我们(以及 SwingWorker
所做的)是在另一个线程上运行代码块,而事件调度线程可以自由地继续执行,直到它收到事件以处理来自后台线程的数据。
SwingWorker
没有记录它在任何地方抛出 ConcurrentModificationException
。堆栈跟踪可能会有所帮助。
我通常建议避免使用 SwingWorker
。它非常适合创建一些演示操作,但设计很差。
线程化是困难的,特别是现在多线程硬件实际上bug更多。随意添加synchronized
不会让问题消失。一个相对简单的通用方法是避免共享可变对象(或至少改变共享对象)。将一组 EDT 中未使用的参数传递到后台线程。同样,将未进行其他修改的参数传递回 EDT。
关于java - SwingWorker要更新TreeModel吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/846317/
我正在为机器人编写一个java插件,其中涉及使用动态JTree。当使用插件的程序关闭然后重新打开时,任何变量和对象都需要存储在 robotsDataModel 中。但是,我无法在程序数据模型中存储 J
我正在尝试实现自己的 TreeModel 以便在 TreeView 中使用。 我已经对 Gtk::TreeModel 进行了子类化,目前正在尝试用我自己的实现覆盖虚拟方法。 但我对它的基础知识有疑问。
我想建立一个TreeModel来自一些List包含源数据的 s。现在,有一个名为 DynamicUtilTreeNode 的实用程序类可以用来从数组、 vector 和哈希表构建树,但是……不能从列表
这里我有一个ManagePageSource,它使用zk的mvvm模式为TreeView提供模型。 ManagePageSource 有一个内部类 Node 来保存 treeNode 数据。 Node
我有一个自定义的 GenericTreeModel,它工作得很好。现在我希望用户能够使用拖放重新排列节点,所以我将一个节点移动到数据模型中的新父节点。然而,TreeModel 希望使用 row_has
我想要 2 个 TreeModel:第二个 TreeModel 的根是第一个 TreeModel 的节点(因此,第二个 TreeModel 是第一个 TreeModel 的子树)。 我认为我可以通过克
当我第一次看到 javax.swing.tree.TreeModel 时,我认为编写所有方法的工作量相当大。然后我找到了 DefaultTreeModel 并认为它可以很容易地通过适配器模式用于文件树
目前,我正在开发一个多线程应用程序。我使用TreeView来显示每个线程的状态,每个线程一行。 主要有两类: 包含TreeView的主要GUI类 类,用于处理线程 将Gtk::TreeModel::i
作为法国人,我的英语不好,抱歉。 我将使用 python 和 pygtk 运行的应用程序升级为适用于 Gtk3 的 python 和 pyobject。很难找到关于 pyGobject 的完整文档,我
我使用自定义模型来填充TreeView并尝试使用 for ix in self.dataView.selectedIndexes(): text = ix.da
我有一系列线程定期检索 RSS 提要,并希望使用 PropertyChangeSupport 刷新自定义 JTree。但是,它使用实现 TreeModel 的自定义类,我不确定如何触发自动更改。这是可
我正在开发一个世界模拟,其中世界表示为: public class World { Turtle turtle; // .. basic constructors, getters,
我真的必须自己实现深度克隆吗?或者是否有任何库方法可以获取 JTree 或其 TreeModel 的深度克隆? 最佳答案 正如@SteveKuo所说,为什么需要克隆TreeModel? TreeMod
我有以下模型: public class CategoryModel { public String id; public String name; public String
我有一个对象层次结构,我想使用 JTree 和 TreeModel 显示它。层次结构的每个级别都是一个不同的类。 我见过的所有 JTree 和 TreeModel 示例在树的整个层次结构中都有一个公共
场景:客户端登录,创建自己的 TableModel 和 TreeModel,并能够在稍后访问它。 TableModel 和 TreeModel,由 Java 类对象和字符串组成。 我如何才能将其存储在
例子: http://jsfiddle.net/yeehawjared/bawv0790/ 我正在构建一个可以打开网页的应用程序,加载大型数据树结构的 JSON。 TreeModel.js 解析这个很
我有一个使用 DefaultTreeModel 的 Jtree,每个单独的节点都包含一个包含各种字符串字段的 UserObject。 我想通过递归遍历找到并选择一个节点,直到它找到具有匹配其中一个字段
我有一个自定义的 JTree 和一个自定义的 JModel;当我给它一个新模型时,我希望 JTree 能够“自动扩展”。目前,它只是将所有节点折叠到根。 这是一个例子: private class C
我需要克隆一棵我用 TreeModel.js 制作的树.我真正需要做的是复制它,对其进行更改并检查节点数量是否减少。如果是这样,恢复到原来的树。这是我到目前为止所做的复制它的一个小例子,这是不正确的:
我是一名优秀的程序员,十分优秀!