1

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

4

0 回答 0