我需要执行/显示从Arraylist到JTextArea的一系列事件,但是,每个事件都会以不同的时间执行.以下是我的目标的一个简单示例:
public void start(ActionEvent e)
{
SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
jTextArea.append("Test" + "\n");
try
{
Thread.sleep(3000);
} catch (InterruptedException e1)
{
e1.printStackTrace();
}
jTextArea.append("Test1" + "\n");
}
});
}
Run Code Online (Sandbox Code Playgroud)
所以现在,整个执行完成后,"Test"和"Test1"会显示在JTextArea上.如何首先显示"测试",然后3秒后显示"Test1"
提前谢谢你们
invokeLater安排runnable在Event Dispatch Thread上运行.你不应该睡在它里面,否则你会使调度线程饿死.请尝试使用单独的工作线程:
Thread worker = new Thread(new Runnable(){
public void run(){
jTextArea.append("Test" + "\n");
try {
Thread.sleep(3000);
} catch (InterruptedException e1) {
e1.printStackTrace();
}
jTextArea.append("Test1" + "\n");
}
});
worker.start();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1253 次 |
| 最近记录: |