tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
544
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Hendrik Tutorials.de Gastzugang
    Hallo,
    ich möchte von Anfang an alle Ebenen eines JTree's geöffnet haben. Wüsste da jmd von euch was?
    Hier übrigens ein kleiner Testbaum mit 3 Ebenen. Die Wurzel und die Ebene darunter sind von Anfang an geöffnet, die Ebene ohne "Kinder" jedoch nicht mehr.
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    
    public class TestBaum{
        public static void main(String[] args) {
            new TestBaum();
        }
        public TestBaum() {
            JFrame frame = new JFrame("BaumTest");
            JPanel pan = new JPanel(new GridLayout(1,1));
            DefaultMutableTreeNode wurzel = new DefaultMutableTreeNode("Baumwurzel");
            for (int i = 0; i < 5; i++) {
                DefaultMutableTreeNode ebene1 = new DefaultMutableTreeNode("Test " + (i+1));
                for (int j = 0; j < 3; j++) {
                    DefaultMutableTreeNode ebene2 = new DefaultMutableTreeNode("EbeneZwei " + (j+1));
                    ebene1.add(ebene2);
                }
                wurzel.add(ebene1);
            }
            DefaultTreeModel treeModel = new DefaultTreeModel(wurzel);
            JTree tree = new JTree(treeModel);
            tree.setEditable(false);
            tree.getSelectionModel().setSelectionMode(
                    TreeSelectionModel.SINGLE_TREE_SELECTION);
            tree.setShowsRootHandles(false);
            pan.add(tree);
            frame.add(pan);
            frame.setSize(200,200);
            frame.setLocation(100,100);
            frame.setVisible(true);
        }
    }
     

  2. #2
    Avatar von miffi
    miffi miffi ist offline Mitglied Gold
    Registriert seit
    Jul 2009
    Ort
    Ravensburg (BW)
    Beiträge
    139
    Howdie.

    Schau dir mal die Methode expandPath(TreePath p) des JTree-Objekts an.
    Mein erster Vorschlag wäre das Hinzufügen von Child-Nodes an einen Parent-Node in eine Methode zu packen und folgendermaßen vorzugehen:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    public void addNewChildNodeToParent(TreeNode parent, TreeNode... childNodes){
     
       for(TreeNode child : childNodes){
            parent.add(child);
       }
     
       TreePath p = new TreePath(this.rootNode.getPath());
       this.myJTree.expandPath(p);
    }
    Ist aus dem Kopf geschrieben, daher keine Garantie auf 100% Richtigkeit.

    Gruß
    miffi
     
    "A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools."
    Douglas Adams

  3. #3
    Avatar von Vincentius
    Vincentius Vincentius ist offline Mitglied Brokat
    Registriert seit
    Sep 2004
    Ort
    Stuttgart
    Beiträge
    295
    Hallo,

    hier ist eine andere Möglichkeit, den kompletten Baum zu öffnen:

    Code java:
    1
    2
    3
    4
    5
    6
    7
    
    public void expandAll(JTree tree) {
        int row = 0;
        while (row < tree.getRowCount()) {
          tree.expandRow(row);
          row++;
      }
    }

    Grüße
    Vincent
     
    "Any sufficiently advanced technology is indistinguishable from magic." Arthur C. Clarke.

Ähnliche Themen

  1. JTree - klick auf Blätter neues Fram öffnen
    Von Polli im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 2
    Letzter Beitrag: 15.07.08, 08:12
  2. [VC++] Tab Page immer offen halten
    Von the incredible Leitman im Forum .NET Windows Forms
    Antworten: 5
    Letzter Beitrag: 21.12.06, 17:33
  3. [VC++] Tab Page2 immer offen halten
    Von the incredible Leitman im Forum .NET Windows Forms
    Antworten: 2
    Letzter Beitrag: 31.07.06, 12:50
  4. Eingabeaufforderung offen halten?
    Von Suchfunktion im Forum Microsoft Windows
    Antworten: 2
    Letzter Beitrag: 03.04.05, 22:16
  5. Response.OutputStream offen halten
    Von StageZero im Forum .NET Archiv
    Antworten: 0
    Letzter Beitrag: 06.09.04, 12:58