0
如果我在edt中創建的線程內修改我的gui,會發生什麼情況?我應該在EDT中創建的線程中調用InvokeLater嗎?
,當我說「在美國東部時間創建」其實我說的線程聲明和其開始在包圍的代碼塊:
SwingUtilities.invokeLater(new Runnable(){
public void run(){
Thread t= new Thread(new Runnable(){
public void run(){
txtField.setText("setting...");
}
});
t.start();
}
}
將在修改我的GUI沒有副作用?或者我應該再次調用線程「T」內的invokeLater?
這是與EDT不同的線程,因此修改擺動組件並不安全。所以是的,如果你需要訪問swing組件,你應該在't'中調用'invokeLater()'。 – kiheru