我嘗試從位置A移動一個JLabel到B順序在相同的X和Y階梯的位置。該方法可以正常工作,但doesnt't更新我的GUI .. 我給你看我下面的代碼:Java更新圖形用戶界面,而MainThread.join()?
當我不叫。 join()
方法,代碼工作,但不要等待執行我的另一個線程...我需要這個函數不會調用它實際運行時..任何人都可以幫助我嗎?
Thread MoveThread = new Thread(new Runnable()
{
@Override
public void run()
{
for (int i = 0; i<Const.SteinVerschiebenSchritte; i++)
{
try
{
p_lblToMove.setLocation(p_lblToMove.getLocation().x + x_schritt, p_lblToMove.getLocation().y + y_schritt);
System.out.println("SetLoc");
Thread.sleep(10);
}
catch (InterruptedException ex)
{
StatusLog("InterruptedException");
}
}
System.out.println("invokeLater");
p_lblToMove.setLocation(p_lblToMove.getLocation().x + x_offset, p_lblToMove.getLocation().y + y_offset);
}
});
MoveThread.start();
try {
System.out.println("BeforeJoin");
MoveThread.join();
System.out.println("AfterJoin");
System.out.println("------------------");
} catch (InterruptedException ex) {
Logger.getLogger(Spielfeld.class.getName()).log(Level.SEVERE, null, ex);
}
*「他的方法工作正常,但不會更新我的GUI ..」*這是一個奇怪的定義'工作正常'.. –