Java JFrame没有调整大小

时间:2012-03-07 19:15:57

标签: java swing jframe

我有一个JFrame,它是一个窗口的顶层容器,以及一个包含在JFrame中的JComponent(我已实现)。

在我的JComponent逻辑的一部分中,我需要将窗口大小调整为特定大小,但现在重要的是我尝试了,它没有用。我尝试在JFrame,JComponent和在组件上调用setPreferredSize返回的setSize上调用ContainergetParent()

我觉得这与更改大小后不调用pack有关,但我无法弄清楚如何从JComponent访问JFrame来调用它上面的包(我不是摇摆专家)

谢谢

1 个答案:

答案 0 :(得分:3)

您始终可以通过调用SwingUtilities#getWindowAncestor方法获取顶级窗口:

Window topLevelWindow = SwingUtilities.getWindowAncestor(myComponent);
topLevelWindow.pack();

传递你的组件。只需确保在GUI呈现后只调用 ,否则你会得到一个令人讨厌的NullPointerException。