20. Juli 200223 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 200223 j Hi Könntest Du vielleciht einen kurzen Beispielcode posten wie es nicht klappt ? Was machst Du in der .equals() genau ? ? ? Erbeere
22. Juli 200223 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 200223 j Hi Fehler gefunden public void valueChanged(TreeSelectionEvent event) { if (event.getPath().toString().equals("MapObject")) System.out.println("MapObject selektiert"); } Erbeere
22. Juli 200223 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 200223 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 200223 j Hallo Ich habe es jetzt genauso gemacht wie du geschrieben hast. Und es klappt leider nicht...
23. Juli 200223 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.