Hallo zusammen,
ich möchte gerne dass in einem JTree der Baum nicht nur durch das "+" und "-" auf- und zugeklappt werden kann, sondern auch, indem man auf das Textlabel klickt.
Das Problem ist nun, dass ich keinen Listener mit den entsprechenden Event finde. Die Tree*Listener passein leider nicht.
Beispielsweise reagiert der TreeSelectionListener nur darauf, wenn sich ein Wert ändert. Wenn man also auf ein Label klickt, so kann ich es aufklappen. Klicke ich erneut auf das selbe Label passiert nichts, da sich eben die Selektion nicht geändert hat.
Auch das MouseClicked-Event funktioniert - so wie ich es verwende - nicht:
In diesem Szenario wird, wenn ich auf das "-" oder "+" des Baumes klicke, der Baum entsprechend dieser Operation verändert, und dann anschließend nochmals durch das Mouse-Clicked-Evend.
Wahrscheinlich ist die Lösung ganz einfach und ich sitze gerade nur etwas auf "der Leitung"
Besten Dank für eure Hilfe und viele Grüße,
Martin
ich möchte gerne dass in einem JTree der Baum nicht nur durch das "+" und "-" auf- und zugeklappt werden kann, sondern auch, indem man auf das Textlabel klickt.
Das Problem ist nun, dass ich keinen Listener mit den entsprechenden Event finde. Die Tree*Listener passein leider nicht.
Beispielsweise reagiert der TreeSelectionListener nur darauf, wenn sich ein Wert ändert. Wenn man also auf ein Label klickt, so kann ich es aufklappen. Klicke ich erneut auf das selbe Label passiert nichts, da sich eben die Selektion nicht geändert hat.
Auch das MouseClicked-Event funktioniert - so wie ich es verwende - nicht:
Java:
if (pMouseEvent.getClickCount() == 1 && mTree.isEnabled()) {
TreePath treePath = ((JTree)pMouseEvent.getSource()).getAnchorSelectionPath();
if (mTree.isExpanded(treePath)) {
mTree.collapsePath(treePath);
} else {
mTree.expandPath(treePath);
}
}
Wahrscheinlich ist die Lösung ganz einfach und ich sitze gerade nur etwas auf "der Leitung"
Besten Dank für eure Hilfe und viele Grüße,
Martin