だから、私は JLabel のテキストを、テキストが入力されているように見せようとしています。私の問題は、EDT がスリープ状態にならず、GUI がまだ更新されていることを確認する方法がわからないことです。コードは次のとおりです。
startGameText() は、プログラムの別の場所から呼び出されます。(質問はJLabelです。)
public void startGameText() throws InterruptedException {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
w.questions.setHorizontalAlignment(SwingConstants.CENTER);
w.questions.setFont(new Font("Helveltica", Font.BOLD, 30));
typeOutQuestions("....");
String awoken = "You have awoken in a strange place. ";
typeOutQuestions(awoken);
String remember = "You only remember a few things..";
typeOutQuestions(remember);
}
});
}
これは、ラベルの質問を更新するために呼び出すメソッドです。
public void typeOutQuestions(String s) throws InterruptedException{
for(int i = 0; i <= s.length(); i ++){
int p = 0;
w.questions.setHorizontalAlignment(SwingConstants.CENTER);
w.questions.setText(s.substring(p, i));
p--;
Thread.sleep(100);
}
}
質問が EDT を介して引き続き更新されるようにするにはどうすればよいですか?ただし、EDT はスリープしません。