単純なJButtonを作成しようとしています。これをクリックすると、単純なJLabelがテキストを「2番目のテキスト」に変更します。その後、現在のスレッドを数秒間スリープさせ、最後にJLabelがテキストを再度変更します。 「3番目のテキスト」への時間。私はここでそれを行ったと思いますが、それは私が望むようには機能しません。以下に示すコードは、JButtonを押したままにしたかのように、指定した時間枠でフリーズさせます。その後、ラベルは3番目の状態に変わります。つまり、「秒のテキスト」は表示されません。
どうすればいいのか教えてください。
ありがとうございました。
package testPackage;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class Demo {
public static void main(String[] args) throws InterruptedException {
JFrame frame = new JFrame();
JButton button = new JButton("Click me!");
final JLabel label = new JLabel("first text");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(600, 600);
JPanel panel = new JPanel();
panel.add(button);
panel.add(label);
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
label.setText("second text");
try {
Thread.currentThread();
Thread.sleep(4000);
} catch (InterruptedException exc) {
System.out.println("Erorrrrr");
}
}
});
frame.add(panel);
frame.setVisible(true);
}
}