向JTextArea发出添加语句,延迟介于两者之间

时间:2014-02-04 01:45:25

标签: java

在下面的代码中,我正在运行我的方法,它将文本添加到JTextArea,然后我等待4秒并添加更多文本。然而,它只需等待四秒钟,然后立即将所有文本放下。我怎样才能使它添加第一个文本,然后等待添加第二个文本块?

   public static void configuresettings() {

    GUI.add("To Begin, Go to www.opionsxo.com");
    try {
        Thread.sleep(4000);
    } catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    GUI.add("Welcome to Configure Settings!");



}

我想出来,如果有人对如何感兴趣。然后查看下面的代码......

           public static void configuresettings() {

    GUI.add("To Begin, Go to www.opionsxo.com");

    ActionListener actionListener = new ActionListener() {

        public void actionPerformed(ActionEvent actionEvent) {
            GUI.add("Welcome to Configure Settings!");
            }
        };
        Timer timer = new Timer( 4000, actionListener );

        timer.setRepeats(false);
        timer.start();






}

2 个答案:

答案 0 :(得分:0)

您不应将Thread.sleepswing一起使用,否则会阻止您的申请。例如,如果您调整窗口大小或在应用程序前面移动窗口,它将不会根据需要重新绘制,因为您已将其停止。相反,您应该使用Swing Timers

你的问题可能是因为你应该在revalidate()之前JTextArea sleep或者其他什么,但如上所述,你应该改变它的实现。 < / p>

在此处阅读更多内容:http://docs.oracle.com/javase/tutorial/uiswing/misc/timer.html

答案 1 :(得分:0)

不要在Event Dispatching Thread的上下文中做任何可能导致它停止的事情,比如调用Thread.sleep

相反,尝试使用javax.swing.TimerSwingWorker

看看:

了解更多详情

例如: