我有几个不相关的swing类,它们是JFrame的实例。问题是,我希望能够使用静态方法创建 controller 类,以根据需要加载适当的框架。我遇到以下代码时遇到困难,因为许多组件都无法加载。我怀疑问题在于事件派遣线程。以下代码不起作用:
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
public class Controller {
private Controller() {
}
public static void initialize(final JFrame frame) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
JFrame selectionFrame = frame;
}
});
}
public static void main(String[] args) {
Controller.initialize(new SampleFrame());
}
}
程序加载框架和工具栏组件,但其他组件无法加载。注意:如果我重构控制器,程序运行就好了:
public class Controller {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new SampleFrame();
}
});
}
}