如何在 运行 时间 Java Swing 中修改 JPanel 大小

How to modify the JPanel size in run time Java Swing

我正在尝试在最大化 window 时修改 JPanel 大小。

活动正常进行,但新尺寸不起作用。

private void resize(String type){
    if(type.equals("maximized")){
        System.out.println(panel_menu.getLocation());
        panel_menu.setPreferredSize(new Dimension(panel_menu.getWidth(), d.height));
        panel_menu.revalidate();
    }
}

这就是当我最大化 window 时面板所做的事情,但是当我单击最大化按钮时 JPanel 不会改变大小。

有什么帮助吗?谢谢!

您通常不要直接修改 JPanel 大小,而是

  • 使用布局管理器和嵌套 JPanel 的智能组合来为您调整大小
  • 有时重写 JPanel 上的 public Dimension getPreferredSize() 以允许它 巧妙地 调整自身大小,但这样做时要小心,并且通常尊重 super.getPreferredSize() 结果你的覆盖。