Hallo,
ich hab schon ein paar Dinge probiert, aber nichts davon hat geklappt.
ich habe einen JTree, genauer gesagt einen DNDTree, den ich im Internet gefunden habe, mit einem MouseEventListener ausgestattet, der mir einen JFileChooser öffnet, wenn auf die Root rechtsgeklickt wird und wo man sich eine datei auswählen kann, deren Name dann im JTree als Knoten ausgegeben werden soll. Der erste Dateienname wird auch noch angezeigt. Aber wenn ich die zweite Datei hinzufüge, wird sie nicht mehr angezeigt. Als ich noch nicht extendPath(...) gemacht habe, ging es, dass der zweite Dateiname angezeigt wird, wenn ich nach dem ersten den root nicht expandet habe. Die Iteration über die Kinder vom root, mit System.out.println gibt mir aber die richtigen Kindknoten auf der Konsole aus. Also, drin sind sie. Kann mir jemand weiterhelfen? Das wäre toll.
Die Codestelle auf die es denke ich ankommt, ist folgende, ist vielleicht das repaint am Ende nicht korrekt?
ich hab schon ein paar Dinge probiert, aber nichts davon hat geklappt.
ich habe einen JTree, genauer gesagt einen DNDTree, den ich im Internet gefunden habe, mit einem MouseEventListener ausgestattet, der mir einen JFileChooser öffnet, wenn auf die Root rechtsgeklickt wird und wo man sich eine datei auswählen kann, deren Name dann im JTree als Knoten ausgegeben werden soll. Der erste Dateienname wird auch noch angezeigt. Aber wenn ich die zweite Datei hinzufüge, wird sie nicht mehr angezeigt. Als ich noch nicht extendPath(...) gemacht habe, ging es, dass der zweite Dateiname angezeigt wird, wenn ich nach dem ersten den root nicht expandet habe. Die Iteration über die Kinder vom root, mit System.out.println gibt mir aber die richtigen Kindknoten auf der Konsole aus. Also, drin sind sie. Kann mir jemand weiterhelfen? Das wäre toll.
Java:
graphsTree.addMouseListener(new PopupMouseListener() {
@Override
public void mousePressed(MouseEvent me) {
int selRow = graphsTree.getRowForLocation(me.getX(), me.getY());
if (me.isPopupTrigger() && selRow == 0) { // rechtsklick auf root?
JFileChooser fileChooser = new JFileChooser();
fileChooser.showOpenDialog(me.getComponent());
File choosenFile = fileChooser.getSelectedFile();
DefaultMutableTreeNode newNode = new DefaultMutableTreeNode(choosenFile.getName());
graphsTree.getRootNode().add(newNode);
Enumeration graphIterator = graphsTree.getRootNode().children();
while(graphIterator.hasMoreElements()){
DefaultMutableTreeNode currentNode = (DefaultMutableTreeNode)graphIterator.nextElement();
System.out.println("ChildNode of Root: " + currentNode.toString());
}
graphsTree.expandPath(new TreePath(graphsTree.getRootNode().getPath()));
graphsTree.getParent().repaint();
}
}
Zuletzt bearbeitet: