Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hallo,
ich habe ein JTree, dessen Elemente, die direkt nach der Wurzel kommen, insgesamt 3 weitere Nodes haben. Zu jedem Knoten gibt es ein eigenes ContentPanel (also insgesamt 4), die je nach Auswahl des Knotens rechts angezeigt werden müssen.
Weiß jemand wie man das am besten macht?
Über einen TreeSelectionListener. Den fügst du dem Tree mittels '#addTreeSelectionListener hinzu, so dass er bei Selektionen aufgerufen wird. Darin führst du dann die gewünschten Änderungen am Panel aus.
Danke, soweit hab ich mir das gedacht. Aber ich weiß nicht genau, wie das aussieht, bzw was ich da genau machen muss. Hättest du vielleicht ein allgemeines Beispiel parat. Wäre echt super
Gut, aber wie kriege ich nun die 4 Panels zur Anzeige.
Ich habe die Panels als Instanzvariablen.
Werden diese Panels außerhalb der SelectionListener Methode erzeugt?
Macht es Sinn, die Panels in einem JPanel[] zu speichern und dann
in der SelectionListenerMethode sowas aufzurufen:
Hallo, kann mir denn niemand helfen. Es wäre echt wichtig, da ich hier am verzweifeln bin.
Wie schaffe ich es in der TreeSelectionListener Methode, für jeden selektierten Knoten das entsprechende Panel anzuzeigen ?
Anbei die Methode, die die Struktur des Baumes erzeugt: Jedes dieser Panel bekommt im Konstruktor ein entsprechendes Objekt.
JPanel ANodePanel;
JPanel bNodePanel;
JPanel cNodePanel;
JPanel dNodePanel;
int aNodes = getAData().size();
int bNodes = getBData().size();
int cNodes = getCData().size();
int dNodes = getDData().size();
DefaultMutableTreeNode root = new DefaultMutableTreeNode(new String("Root"));
for(int i = 0;i<aNodes;i++)
{
String aValue = ((AModel)getAData().get(i)).getAValue();
int bValue = ((AModel)getAData().get(i)).getBValue();
DefaultMutableTreeNode a = new DefaultMutableTreeNode(new AModel(aValue,bValue));
root.add(a);
DefaultMutableTreeNode parent = a;
for(int j = 0;j<bNodes;j++)
{
String a = ((BModel)getBData().get(j)).getAValue();
int b = ((BModel)getBData().get(j)).getBValue();
int c = ((BModel)getBData().get(j)).getCValue();
int d = ((BModel)getBData().get(j)).getDValue();
String e = ((BModel)getBData().get(j)).getEValue();
DefaultMutableTreeNode b = new DefaultMutableTreeNode(new BModel(a,b,c,d,e));
parent.add(b);
DefaultMutableTreeNode p = b;
for(int k = 0;k<cNodes;k++)
{
String a = ((cModel)getCData().get(k)).getAValue();
DefaultMutableTreeNode c = new DefaultMutableTreeNode(new CModel(a));
p.add(c);
DefaultMutableTreeNode q = c;
for(int l = 0;l<dNodes;l++)
{
String a = ((DModel)getData().get(l)).getAValue();
String b = ((DModel)getData().get(l)).getBValue();
String c = ((DModel)getData().get(l)).getCValue();
DefaultMutableTreeNode d = new DefaultMutableTreeNode(new DModel(a,b,c));
q.add(d);
}
}
}
}
DefaultTreeModel model = new DefaultTreeModel(root);
tree = new JTree(model);