hi, ich habe ein Fenster mit Knopf, auf dem, wenn man auf den Knopf drückt, etwas länger gerechnet werden muss. Deshalb wollte ich in diesem Fall (an JProgressBar bin ich gescheitert
) ein Label anzeigen, dass einfach nur sagt "bitte warten". ich setze den Aufruf label.setVisible(true); an erste Stelle und dennoch erscheint das Label erst, wenn die Arbeit getan ist :-(
Ich hab hier mal eine Kurzfassung geschrieben:
Tja, wie schon beschrieben, kriege ich das "bitte warten" erst, wenn die 5000 Zahlen ausgegeben sind (und das ist ja nicht Sinn der Sache)
Wo liegt mein Denkfehler?
Schon mal danke für die Zeit,
Maria
Ich hab hier mal eine Kurzfassung geschrieben:
Code:
public class Test4 {
public static void main (String args []) {
Buh b = new Buh();
b.init();
}
}
Code:
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
public class Buh {
JFrame f;
JButton button;
JPanel panel;
JLabel label;
public void init() {
f = new JFrame();
f.setSize(300,300);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
panel = new JPanel();
button = new JButton("doSomething()");
button.addActionListener(new DoSomethingListener());
label = new JLabel("bitte warten...");
label.setVisible(false);
panel.setLayout(new GridLayout(2,1));
panel.add(button);
panel.add(label);
f.getContentPane().add(panel);
f.setVisible(true);
}
private class DoSomethingListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
label.setVisible(true);
for (int i = 0; i<5000; i++) {
System.out.println(i); //einfach mal ein bisschen arbeiten
}
}
}
}
Tja, wie schon beschrieben, kriege ich das "bitte warten" erst, wenn die 5000 Zahlen ausgegeben sind (und das ist ja nicht Sinn der Sache)
Wo liegt mein Denkfehler?
Schon mal danke für die Zeit,
Maria