- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 DefaultTreeModel ,您可以使用 insertNodeInto()
方法插入节点。但是,我注意到还存在 nodesWereInserted()
方法,该方法具有以下非常简洁的 Javadoc:
Invoke this method after you've inserted some TreeNodes into node.
我觉得很奇怪,这是一个公共(public)方法。我希望如果它要向监听器触发 ChangeEvents,它应该是由 insertNodeInto()
调用的私有(private)方法。似乎调用一个方法来通知另一个方法调用的更改与 Java Swing 的设计方式有些不一致(当我将元素添加到JComboBox)。
但我发现在我的代码中,如果在 insertNodeInto()
之后调用 nodesWereInserted()
并不重要。无论哪种方式,结果都与将节点添加到树中并显示在 GUI 中相同。
有人可以解释一下是否有必要在 DefaultTreeModel 中调用 nodesWereInserted()
和类似方法吗?如果是这样,为什么?它能做什么 insertNodeInto()
无法单独完成的事情?
最佳答案
你不需要自己调用它。正如 EJP 所说,每次插入节点时都会调用它。您可以在派生类中重写此函数,以便在插入节点时收到信号。
如果你没有自己的派生类,那么你只需添加一个 TreeModellistener 即可。
关于java - 是否有必要在DefaultTreeModel中调用nodesWereInserted()和类似方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20697402/
我是一名优秀的程序员,十分优秀!