我有一个类,它有一个JFrame,在我的JFrame上,它包含一些我想要调用的方法。问题是我的类在主线程中,mFrame现在被委托给EDT线程,那么我如何向EDT发送指令来运行这些方法呢?
更新
这是扩展JFrame的我的FrameRadar,如你所见,我有一个更新方法,基本上还有mDisplay和mRadar的更新,这些是jpanel。
FrameRadar Class ...(
public class FrameRadar{
...
public void update() {
mAccessor.getmDisplay().update();
mAccessor.getmRadar().update();
}
这是我的MainRadar类,它包含一个FrameRadar,我也有一个更新方法。该更新方法将调用jframe的更新。
class MainRadar(
....
private FrameRadar mFrame;
....
public StateMainGame() {
init();
}
public void init() {
....
java.awt.EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
mFrame = new FrameRadar();
mFrame.setVisible(true);
}
});
}
....
public void update() {
mFrame.update();
}
如您所见,MainRadar.Update-> FrameRadar->更新 - > Jpanels->更新。问题是我无法使用
mFrame.update();