Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to refresh XML in Jtree

I read here , but if the xml file changes the jtree does not reload /refreshes
how to create a function for refresh / reload Jtree
I try to write code :

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");
}};

but i got the error : java.lang.NullPointerException

like image 900
Bujangan Muda Avatar asked Feb 03 '26 13:02

Bujangan Muda


2 Answers

I added a new Action to popup in getJPopupForExplorerTree(). You'll probably want to re-factor xmlFile out of the XMLTree constructor; I've hard coded it for expedience below:

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);
        }
    }
});
like image 90
trashgod Avatar answered Feb 06 '26 03:02

trashgod


  • this is most complex code, probably

  • read tutorial about JTables DefaultTableModel (good described concept and logics for DefaultXxxModel is similair / the same)

  • read tutorial about JTree

  • read tutorial about Concurency in Swing,

  • especially description about SwingWorker

  • in your case better (sorry for that) would be create an new instance for DefaultTreeModel, fills data by using SwingWorker, add new model to the visible JTree,

  • by replacing model you'll lost all changes in the current JTree

like image 32
mKorbel Avatar answered Feb 06 '26 02:02

mKorbel



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!