我如何感觉到SwingUtilities.invokeLater()在任何swing application.Please中的本质,并给出了一些代码示例。
发布于 2010-07-02 01:00:30
当您需要更新GUI中的某些内容时,您应该通过AWT事件线程进行更新。
这是因为AWT (以及顶部的Swing )有自己的线程来管理GUI的所有内容。没有它,图形界面就无法以异步的方式处理事件和类似的事情,而您的程序正在做其他事情。
因此,例如,如果在Thread中声明了一个长任务
public void MyThread extends Thread
{
class GUIUpdate implements Runnable
{
GUIUpdate(String msg)
{
...
}
public void run()
{
guiElement.appendText(msg);
}
}
public void run()
{
while (finished)
{
//do long calculations
//send partial output to gui
SwingUtilities.invokeLater(new GUIUpdate("something has changed!"));
}
}
}https://stackoverflow.com/questions/3162631
复制相似问题