【问题标题】:Java JFrame not resizingJava JFrame 未调整大小
【发布时间】:2012-03-07 19:15:56
【问题描述】:

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

在我的 JComponent 逻辑的一部分中,我需要将窗口大小调整为特定大小,但现在无论我尝试什么,它都不起作用。我尝试在 JFrame、JComponent 以及从组件上调用 getParent() 返回的 Container 上调用 setPreferredSizesetSize

我感觉这与更改大小后不调用 pack 有关,但我不知道如何从 JComponent 访问 JFrame 以对其调用 pack(我不是摇摆专家)。

谢谢

【问题讨论】:

  • pack() 将为您调整大小。如果要手动设置大小,请不要致电pack()

标签: java swing jframe


【解决方案1】:

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

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

传入你的组件。只需确保仅在渲染 GUI 之后调用它,否则你会得到一个讨厌的 NullPointerException。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多