Swing - Label aktualisieren bei Knopfdruck
slash
- java
0 Slyh
Hallo, ich habe ein einfaches Java Programm bei dem sich einfach die Aufschrift eines Labels ändern soll. Leider funktioniert das nicht. Hab schon mit paint() und repaint() ewig rumprobiert und weiß echt nicht mehr weiter. Kann mir jemand erklären, wie ich mein Programm verändern muss, damit sich das Label bei Knopfdruck ändert?
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class GUITest extends JFrame implements ActionListener{
JPanel panel;
JLabel label;
JButton button;
public GUITest(){
label = new JLabel("test");
button = new JButton("change");
button.addActionListener(this);
panel = new JPanel();
panel.add(label);
panel.add(button);
setContentPane(panel);
setVisible(true);
pack();
}
public static void main(String[] args){
new GUITest();
}
public void actionPerformed(ActionEvent source){
label = new JLabel("neu");
repaint();
}
}
Hallo,
public void actionPerformed(ActionEvent source){
label = new JLabel("neu");
repaint();
}
Was du hier tust, ist nicht den Text eines bestehenden Labels zu ändern. Vielmehr
weist du dem Member 'label' eine neue Instanz eines JLabels zu. Das willst
du vermutlich nicht.
Diesen falschen Ansatz weiterverfolgend müßtest du das bestehende JLabel (das
zuvor in 'label' referenziert war) aus dem Layout entfernen und das neue an
dieselbe Stelle einfügen. Aber, wie gesagt, das willst du nicht.
Stattdessen verwendest du lieber die Methode JLabel.setText(String) um dem
Label einen neuen Text zu verpassen.
Gruß
Slyh