L
LarsKo
Gast
folgendes möchte ich erreichen.
mit den folgenden Fragmenten hampel ich nun schon einige Zeit herum und probiere dies an dem aus, wenn man einen new JTree() ohne irgendetwas erzeugt. Gut wir sehen ein paar Speisen und Farben und ich will nun, dass bei der aktuellen Selektion nicht das zuletzt selektierte Element auf der Konsole ausgegeben wird, sondern das vorletzte, egal ob Blatt oder Knoten!
Wenn ich also bananas anklicke, soll ravioli ausgegeben werden, wenn ich hot dogs anklicke, soll food ausgegeben werden. wie um himmels willen kriege ich das hin.??
mit den folgenden Fragmenten hampel ich nun schon einige Zeit herum und probiere dies an dem aus, wenn man einen new JTree() ohne irgendetwas erzeugt. Gut wir sehen ein paar Speisen und Farben und ich will nun, dass bei der aktuellen Selektion nicht das zuletzt selektierte Element auf der Konsole ausgegeben wird, sondern das vorletzte, egal ob Blatt oder Knoten!
Wenn ich also bananas anklicke, soll ravioli ausgegeben werden, wenn ich hot dogs anklicke, soll food ausgegeben werden. wie um himmels willen kriege ich das hin.??
Code:
TreePath path = tree.getSelectionPath();
System.out.println(path.getLastPathComponent());
TreeNode node = ((TreeNode)path.getLastPathComponent()).getParent();
//hmmmm
System.out.println(node);
Code:
import java.awt.BorderLayout;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JPopupMenu;
import javax.swing.JTree;
import javax.swing.tree.TreeNode;
import javax.swing.tree.TreePath;
public class JTreeTest extends JFrame {
JPopupMenu pop;
JTree tree;
TreePath clickedPath;
public JTreeTest() {
super("JTreeSelectionTest");
JPanel firstPanel = new JPanel();
tree = new JTree();
tree.addMouseListener(new PopupTrigger());
firstPanel.add(tree);
getContentPane().add(firstPanel, BorderLayout.CENTER);
pack();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
class PopupTrigger extends MouseAdapter {
public void mouseReleased(MouseEvent e) {
TreePath path = tree.getSelectionPath();
System.out.println(path.getLastPathComponent());
TreeNode node = ((TreeNode)path.getLastPathComponent()).getParent();
//System.out.println(node);
}
}
public static void main(String[] args) {
JTreeTest test = new JTreeTest();
}
}