Jlabel mit itemlistevent Text gegeben, wird nicht angezeigt

Kelsjb7

Mitglied
Hi, ich habe ein theoretisches Problem. Also es ist so, ich habe JLabels die öffentlich in meiner Klasse sind. In einer Methode, die in der Klasse ist, erstelle ich eine anonyme Klasse vom Itemlist, in der habe ich die einzige mögliche Klasse, dann nehme ich in der Methode die labels und gebe denen einen Text und in einer anderen privaten Methode, werden die labels eingefügt. Das Proboem ist, dass wenn ich dann etwas von meinem Panel auswähle, sehe ich nicht den Jlabel text und die Methode, wo ich die anonyme Klasse erstelle und wo ich den itemlistener samt Methode erstellt habe, wird eigentlich auch aufgerufen
 
Beste Antwort
mit new Label() erzeugst du ein neues Label. mit thisIsMyLabel.setText("") änderst du den Text eines bestehenden Labels.

Wenn du ein neues erstellst, musst du es ins Formular einfügen, damit es angezeigt wird.
Java:
Container c = new Container();
JLabel label = new JLabel("Hallo");
c.add(label); //Fügt das in label gespeicherte JLabel in das Formular ein
label = new JLabel("Neues Label"); //erzeugt ein neues Label. Jenes, welches sich bereits in c befindet, wird nicht geändert. Auch verweist "label" nicht mehr auf das vorige Label, sondern auf das neu erzeugte.
Das klingt doch nach einem sehr praktischen Problem.
Prüf doch mal, ob der Event überhaupt ausgelöst wird. Gib dort was mit System.out aus.

Wenn ein Label angezeigt wird und dessen Text per setText gesetzt wird, dann wird die Anzeige aktualisiert. Also sind entweder die Labels, deren Texte du setzt, nicht Teil des Formulars oder setText wird gar nicht erst aufgerufen.
 
Das klingt doch nach einem sehr praktischen Problem.
Prüf doch mal, ob der Event überhaupt ausgelöst wird. Gib dort was mit System.out aus.

Wenn ein Label angezeigt wird und dessen Text per setText gesetzt wird, dann wird die Anzeige aktualisiert. Also sind entweder die Labels, deren Texte du setzt, nicht Teil des Formulars oder setText wird gar nicht erst aufgerufen.
Ach wie setText? Ich habe einfach das jlabel genommen, dann new Jlabel und in Klammern den Text geschrieben, wie muss ich das mit setText machen? Kannte den Code garnicht
 
mit new Label() erzeugst du ein neues Label. mit thisIsMyLabel.setText("") änderst du den Text eines bestehenden Labels.

Wenn du ein neues erstellst, musst du es ins Formular einfügen, damit es angezeigt wird.
Java:
Container c = new Container();
JLabel label = new JLabel("Hallo");
c.add(label); //Fügt das in label gespeicherte JLabel in das Formular ein
label = new JLabel("Neues Label"); //erzeugt ein neues Label. Jenes, welches sich bereits in c befindet, wird nicht geändert. Auch verweist "label" nicht mehr auf das vorige Label, sondern auf das neu erzeugte.
 
Zuletzt bearbeitet:
Beste Antwort
mit new Label() erzeugst du ein neues Label. mit thisIsMyLabel.setText("") änderst du den Text eines bestehenden Labels.

Wenn du ein neues erstellst, musst du es ins Formular einfügen, damit es angezeigt wird.
Java:
Container c = new Container();
JLabel label = new JLabel("Hallo");
c.add(label); //Fügt das in label gespeicherte JLabel in das Formular ein
label = new JLabel("Neues Label"); //erzeugt ein neues Label. Jenes, welches sich bereits in c befindet, wird nicht geändert. Auch verweist "label" nicht mehr auf das vorige Label, sondern auf das neu erzeugte.
Okay danke
 

Neue Themen


Zurück
Oben