我应该在 EDT 中创建的线程中调用 InvokeLater 吗?
Should i call InvokeLater inside a thread created in the EDT?
如果我在 edt 创建的线程中修改我的图形用户界面会怎样?
当我说 "created in the edt" 时,我实际上是在说线程声明及其开始位于代码块中,代码块由以下代码包围:
SwingUtilities.invokeLater(new Runnable(){
public void run(){
Thread t= new Thread(new Runnable(){
public void run(){
txtField.setText("setting...");
}
});
t.start();
}
}
这会修改我的图形用户界面而没有副作用吗?或者我应该在 Thread "T"?
中再次调用 invokeLater
在 EDT 中是否实例化和 运行 线程并不重要。它将是一个新线程,运行ning 独立于 EDT,因此从中修改 GUI 是不安全的。所有 Swing 修改都必须使用 invokeLater()
.
完成
如果我在 edt 创建的线程中修改我的图形用户界面会怎样?
当我说 "created in the edt" 时,我实际上是在说线程声明及其开始位于代码块中,代码块由以下代码包围:
SwingUtilities.invokeLater(new Runnable(){
public void run(){
Thread t= new Thread(new Runnable(){
public void run(){
txtField.setText("setting...");
}
});
t.start();
}
}
这会修改我的图形用户界面而没有副作用吗?或者我应该在 Thread "T"?
中再次调用 invokeLater在 EDT 中是否实例化和 运行 线程并不重要。它将是一个新线程,运行ning 独立于 EDT,因此从中修改 GUI 是不安全的。所有 Swing 修改都必须使用 invokeLater()
.