20. Juli 200224 j Hallo... Ich hätte da nochmal eine kleine Swing Frage und hoffe jemand kann mir helfen. Wenn ich bei mir einen Eintrag im TreePfad angewählt habe und dann das MenuItem des Trees mit equals vergleiche (auch wenn ich das Item vorher mit toString parse) schlägt der Vergleich fehl. Ich vergleiche mit dem Namen des Eintrags(String). Wenn ich in der if Anweisung mit Eintrag ausgewählt != null vergleiche klappt es,daran kann es also nicht liegen. Hat jemand noch eine andere Möglichkeit? Vielen Dank im vorraus... Mark
21. Juli 200224 j Hi Könntest Du vielleciht einen kurzen Beispielcode posten wie es nicht klappt ? Was machst Du in der .equals() genau ? ? ? Erbeere
22. Juli 200224 j Hallo ... Hier ist die Methode... JTree getTestTree() { DefaultMutableTreeNode root,mapObject; root = new DefaultMutableTreeNode("Map"); mapObject = new DefaultMutableTreeNode("MapObject"); root.add(mapObject); JTree tree = new JTree(root); TreeSelectionModel tsm = new DefaultTreeSelectionModel(); tsm.setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); tree.setSelectionModel(tsm); tree.setRootVisible(true); tree.addTreeSelectionListener(new TreeSelectionListener() { public void valueChanged(TreeSelectionEvent event) { TreePath tp = event.getPath(); tp.toString(); if (tp.equals("MapObject")) { System.out.println("MapObject selektiert"); } } }); return tree; }
22. Juli 200224 j Hi Fehler gefunden public void valueChanged(TreeSelectionEvent event) { if (event.getPath().toString().equals("MapObject")) System.out.println("MapObject selektiert"); } Erbeere
22. Juli 200224 j Tut mir leid,doch das funktioniert trotzdem nicht. Aber mache ich bei meinem Codebeispiel nicht dasselbe was du meinst? Nur das ich halt direkt mit einem TreePath-Objekt vergleiche? public void valueChanged(TreeSelectionEvent event) { TreePath tp = event.getPath(); tp.toString(); if (event.getPath().toString().equals("MapObject")){ if (tp.equals("MapObject")) { System.out.println("MapObject selektiert"); }
22. Juli 200224 j ARGL Mit was vergleicht denn das TreeObj ? Ich meine was steht in der .equals drin ? vergleiche doch einfach nur die String-Repräsentation So wie ich es geschrieben habe ! Erbeere
23. Juli 200224 j Hallo Ich habe es jetzt genauso gemacht wie du geschrieben hast. Und es klappt leider nicht...
23. Juli 200224 j Hallo nochmal... Habe jetzt doch eine Möglichkeit gefunden. Habe einfach mal den Selektierten Pfad ausgelesen und gesehen, das die Strings in [ ] gesetzt sind. public void valueChanged(TreeSelectionEvent event) { TreePath tp = event.getNewLeadSelectionPath(); if (tp.toString().equals("[Map, MapObject]")) { System.out.println("Object selektiert: "+tp.toString()); MapObject mapObj = new MapObject(); } } Vielen Dank nochmal für deine Hilfe
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.