我想把头发拉出去试图找出以下在某些情况下不起作用的原因:
public static void main(String[] str) {
new Window(new DatabaseManager());
}
我在两个类中运行这个确切的代码,有两个不同的结果。
当我从Window
类本身运行它时,它运行得很好。
当我从另一个类运行它时,它不会加载我的所有窗口组件。
这是一些与内存有关的问题吗? 我试图为Window对象分配一个变量名,但无济于事。 如果需要,我很乐意进一步解释。
Window
是一个JFrame,如果重要的话。 (它内部有许多组件,它们通过一种奇怪的算法添加了很多处理能力(加载图像)。)
修改
无论如何,我能否让EDT有更多时间来处理请求?
的 EDIT2
好吧,所以我做的是,我决定在Window
课程中做所有事情(我在那里做了主要方法),因为它完美无缺。我还有很多东西可以学习线程,我还没够熟。现在一切都很好:))
答案 0 :(得分:3)
在main方法中尝试以下内容(事件调度线程+ setVisible)
Runnable doHelloWorld = new Runnable() {
public void run() {
Window w = new Window(new DatabaseManager());
w.pack();
w.setVisible(true);
}
};
SwingUtilities.invokeLater(doHelloWorld);