Inhalt wechseln bei Klick auf Label

Bitte aktiviere JavaScript!
Wie kann ich machen, dass neue Inhalte sofort aktualisiert werden? Also ich habe im oberen Bereich des Frames ein paar Labels. In der Mitte des Frames soll dann z.B. der Textinhalt der Labels ausgegeben werden. Das macht er nur einmal. Wenn ich dann ein anderes Label anklicke, "aktualisiert" er mir das nicht.
Ich habe es mit pack() und setExtendedState(JFrame.MAXIMIZED_BOTH) probiert. Das funktioniert dann auch, allerdings sieht man wie sich das Fenster quasi ganz schnell schließt und wieder öffnet. Der Wechsel sollte eigentlich fließend stattfinden.
 
A

Anzeige




Schau mal hier —> (hier klicken)
Hast du bereits einen MouseListener?
Wie zeigst du das Erwartete an?
Kannst du ein kurzes, kompilierbares Beispiel erstellen, sodass wir verstehen was das Problem ist?
 
Ja, ein MouseListener habe ich. Der sieht so aus:

Java:
@Override
public void mouseClicked(MouseEvent e) {
    JLabel clickedLabel = (JLabel)e.getSource();
    window.addWord(clickedLabel.getText());
}
Und die Methode sieht dann so aus:

Java:
public void addWord(String word) {       
    panel_word_info.removeAll();   
    lb_currentWord = new JLabel(word);
    panel_word_info.add(lb_currentWord);

    this.pack();
    this.setExtendedState(JFrame.MAXIMIZED_BOTH);
}
 
Anstatt immer wieder ein neues Label hinzuzufügen, solltest du nur 1 Label verwenden und davon den Text mit der Label#setText(String) Methode verändern.
 
Okay so funktioniert es jetzt wie ich es wollte. Danke!

Aber warum funktioniert das nicht fließend, wenn ich immer ein weiteres Label hinzufüge?
 
Aber warum funktioniert das nicht fließend, wenn ich immer ein weiteres Label hinzufüge?
Beim Löschen/Hinzufügen, während die Komponenten sichtbar sind, muss das Layout neu "berechnet" werden, hierfür gibt es die Methoden validate(),revalidate() und manchmal wird auch zusätzlich repaint() vorgeschlagen, beim letzteren bin ich mir nicht sicher, ob das wirklich eine gute Lösung ist. Jedenfalls kannst du ja mal hier: https://stackoverflow.com/questions/6516478/java-swing-dynamically-adding-components oder https://stackoverflow.com/questions/4279435/java-how-would-i-dynamically-add-swing-component-to-gui-on-click vorbeischauen.
 
A

Anzeige




Vielleicht hilft dir das hier weiter: (klicke hier)
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben