所以,我试图让 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 不休眠?