我读了 here,但是如果xml文件更改,则jtree不会重新加载/刷新
如何创建刷新/重新加载Jtree的功能
我尝试编写代码:
refreshAction = new AbstractAction("Refresh", IconFactory.getIcon("delete", IconFactory.IconSize.SIZE_16X16)) {
public void actionPerformed(ActionEvent e) {
XMLTree xmlClass = null;
((DefaultTreeModel) xmlClass.getModel()).reload();
System.out.println("Refresh");
}};
但我收到错误:java.lang.NullPointerException
最佳答案
我在Action
的popup
中添加了一个新的getJPopupForExplorerTree()
。您可能需要从xmlFile
构造函数中重构XMLTree
;为了方便起见,我已经对其进行了硬编码:
popup.add(new AbstractAction("Reload") {
public void actionPerformed(ActionEvent e) {
System.out.println("Reload");
try {
root = getRoot("xml.xml");
setModel(new XMLTreeModel(root));
} catch (Exception ex) {
ex.printStackTrace(System.err);
}
}
});