Hallo!
In meinem aktuellen Programm habe ich einen JTree, der einen TreeSelectionListener besitzt.
Nun möchte ich gerne den Pfad
mit einem String vergleichen, um eine Methode aufzurufen.
Ich habe mir überlegt, dass es über eine if-Verzweigung, die den Pfad des JTrees ausliest und abgleicht funktionieren müsste.
Nun zu meinem Problem:
Wenn ich den Pfad der aktuellen Node zu Testzwecken auslese
erhalte ich den Output
welcher ja auch völlig richtig ist!
Wenn ich aber nun
als Listener verwende habe ich nun 3 Methoden den Pfad mit einem String zu vergleichen.
Bei mir liegen in der überliegenden Node "Bücher" (deren überliegende Node ist wiederum der Root "Medien") die Leaves "Autor", "Titel" und "Genre" vor.
Bei einem Klick auf "Autor" (im Programm) wird nur der Pfad ausgegeben, da ich ja
verwende bevor das Programm in die if-Verzweigung geht.
Was ich nun nicht verstehe ist, warum das Programm die "1" nicht auswirft.
Bei einem Klick auf Titel oder Genre ist es das gleiche, es werden wird weder die 2, noch die 3 ausgegeben.
Was mache ich falsch?
mfG spinner
In meinem aktuellen Programm habe ich einen JTree, der einen TreeSelectionListener besitzt.
Nun möchte ich gerne den Pfad
Code:
tree.getSelectionPath()
Ich habe mir überlegt, dass es über eine if-Verzweigung, die den Pfad des JTrees ausliest und abgleicht funktionieren müsste.
Nun zu meinem Problem:
Wenn ich den Pfad der aktuellen Node zu Testzwecken auslese
Code:
System.out.println(tree.getSelectionPath());
Code:
[Medien, Bücher, Autor]
Wenn ich aber nun
Java:
tree.addTreeSelectionListener(new TreeSelectionListener()
{
public void valueChanged(TreeSelectionEvent e)
{
DefaultMutableTreeNode node = (DefaultMutableTreeNode) tree.getLastSelectedPathComponent();
if (node == null) return;
Object nodeInfo = node.getUserObject();
if (node.isLeaf())
{
System.out.println(tree.getSelectionPath());
if (tree.getSelectionPath().toString().equals("[Medien, Bücher, Autor]"))
{
System.out.println("1");
}
else if (tree.getSelectionPath().toString() == "[Medien, Bücher, Titel]")
{
System.out.println("2");
}
else if (tree.getSelectionPath().equals("[Medien, Bücher, Genre]"))
{
System.out.println("3");
}
}
}
}
als Listener verwende habe ich nun 3 Methoden den Pfad mit einem String zu vergleichen.
Bei mir liegen in der überliegenden Node "Bücher" (deren überliegende Node ist wiederum der Root "Medien") die Leaves "Autor", "Titel" und "Genre" vor.
Bei einem Klick auf "Autor" (im Programm) wird nur der Pfad ausgegeben, da ich ja
Code:
System.out.println(tree.getSelectionPath());
Was ich nun nicht verstehe ist, warum das Programm die "1" nicht auswirft.
Bei einem Klick auf Titel oder Genre ist es das gleiche, es werden wird weder die 2, noch die 3 ausgegeben.
Was mache ich falsch?
mfG spinner
Zuletzt bearbeitet: