Zum Inhalt springen

JTree vergleich klappt nicht...


Empfohlene Beiträge

Geschrieben

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

Geschrieben

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;

}

Geschrieben

Hi

Fehler gefunden ;)


public void valueChanged(TreeSelectionEvent event) {

  if (event.getPath().toString().equals("MapObject")) 

    System.out.println("MapObject selektiert");

}

Erbeere

Geschrieben

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");

}

Geschrieben

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

Geschrieben

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

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...