Collections JTree remove zeigt keinen Effekt!

  • Themenstarter Themenstarter horstiii1
  • Beginndatum Beginndatum
H

horstiii1

Gast
Java:
 ((DefaultMutableTreeNode) jt.getModel().getRoot()).removeAllChildren();
 ((DefaultMutableTreeNode) jt.getModel().getRoot()).add(n1);

Zeile 1 tut nix....
Bitte um eine Hilfe!
 
removeAllChildren() feuert wohl kein Event nach dem Löschen. Versuchs mal so
Java:
DefaultTreeModel model = (DefaultTreeModel) tree.getModel();
DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getRoot();
root.removeAllChildren();
model.reload();
model.setRoot(null);
 
Java:
jb1.addActionListener((ActionEvent e) -> {
    try {
        int i = model.readList1("");

        DefaultMutableTreeNode n1 = new DefaultMutableTreeNode("readList1");
        DefaultMutableTreeNode n2 = new DefaultMutableTreeNode("i");
        DefaultMutableTreeNode n3 = new DefaultMutableTreeNode(i);
        DefaultMutableTreeNode n4 = new DefaultMutableTreeNode("size");
        DefaultMutableTreeNode n5 = new DefaultMutableTreeNode(model.list1.size());
        n2.add(n3);
        n4.add(n5);
        n1.add(n2);
        n1.add(n4);
        ((DefaultMutableTreeNode) jt.getModel().getRoot()).removeAllChildren();
        ((DefaultMutableTreeNode) jt.getModel().getRoot()).add(n1);
        ((DefaultTreeModel) jt.getModel()).reload(); // genau das ist es gewesen! Danke 
        for (int j = 0; j < jt.getRowCount(); j++) {
            jt.expandRow(j);
        }
        jt.repaint();

    } catch (IOException ioe) {

    }
});
 
Mal eine Frage, ist es jetzt gut oder schlecht wie Java das umgesetzt hat? Iewas werden die sich ja dabei gedacht haben! oder?
 
Es ist so umgesetzt, dass größtmögliche Flexibilität erreicht wird. Das TreeModel-Interface definiert dabei das Minimum an Funktionalität, das von JTree tatsächlich benötigt wird.

DefaultTreeModel wiederum ist lediglich eine Standardimplementierung und somit eher als Beispiel zu verstehen, wie ein TreeModel implementiert werden kann.
 

Neue Themen


Zurück
Oben