我读到这里 ,但如果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);
}
}
});
我不知道spesific代码,但你可以试试这个
refreshAction = new AbstractAction("Refresh", IconFactory.getIcon("delete", IconFactory.IconSize.SIZE_16X16)) {
public void actionPerformed(ActionEvent e) {
DefaultTreeModel myTreeModel = (DefaultTreeModel) xmlClass.getModel();
myTreeModel.reload();
revalidate();
repaint();
}};