JPanel-Inhalt ändern

  • Themenstarter Themenstarter Karakas
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
K

Karakas

Gast
habe folgendes Problem. Bei mir ändert sich der Inhalt meines JLabels nicht! Es wird zwar angezeigt, mit dem Text "Bitte wählen", aber wenn ich auf die Buttons drücke, dann sollte sich das eigentlich ändern... tut es aber nicht. Kann mir jemand sagen, woran das liegt?


Code:
public class Vergleich extends JFrame implements ActionListener {
	
	JLabel statusfield;
	JButton button1, button2;
	
	public Vergleich() {
			
		super("TestSuite 0.1");

		setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); 
		setSize( 200, 400 );
		setLocation(100, 100);
		
		setLayout(new GridLayout(3,1));
		JPanel panel = new JPanel();
		button1 = new JButton("Vergleich starten");
		button2 = new JButton("Simulator starten");
		statusfield = new JLabel();
		
		add(button1);
		add(button2);
		add(statusfield);
		
		statusfield.setText("Bitte wählen");

		button1.addActionListener(this);
		button2.addActionListener(this);

		setVisible( true );
	}

	public void actionPerformed(ActionEvent evt) {
		if (evt.getSource() == button1) {
			statusfield.setText("Vergleich läuft 0/2 abgeschlossen");
			ExternGegenIntern.test();
			statusfield.setText("Vergleich läuft 1/2 abgeschlossen");
			InternGegenExtern.test();
			statusfield.setText("Vergleich läuft 2/2 abgeschlossen");
         }
		if (evt.getSource() == button2) {
		//...	
         }
	}
}
 
das Neuzeichen geschieht erst, wenn die actionPerformed komplett fertig ist,

du musst das ganze umbauen:
actionPerformed startet einen Thread und ist sofort fertig,
vom Thread aus Text setzen und zwischendurch arbeiten
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben