我想在不创建变量gui final
的情况下执行以下操作:
public class MainClass
{
GUIClass gui;
Runnable r = new Runnable()
{
public void run()
{
// this won't work!
gui = new GUIClass();
}
};
SwingUtilities.invokeLater(r);
Controller c = new Controller(gui);
}
我怎样才能实现这一目标?我想通过EDT建造gui。同时我想将新实例分配给变量gui。但是如果不制作gui final
,这将无法奏效。我不想使用final
因为在我的上下文中不可能。任何人都知道如何解决这个问题?上面的代码当然是在main方法中执行的。但由于某些原因,我无法在此处发布错误信息。
答案 0 :(得分:0)
对于那些有一天应该对这个问题感兴趣的人,这是解决方案: 我犯了一个错误。实际上,您应该区分构建GUI对象并使其可见。所以这是做到这一点的方法:
public class MainClass
{
final GUIClass gui = new GUIClass();
Runnable r = new Runnable()
{
public void run()
{
gui.pack();
gui.setVisible(true);
}
};
SwingUtilities.invokeLater(r);
Controller c = new Controller(gui);
}