【问题标题】:Resizing a JFrame to fit added components调整 JFrame 的大小以适应添加的组件
【发布时间】:2014-04-25 16:25:07
【问题描述】:

我正在制作一个有趣的程序,它基本上是一个计算机导航 GUI,不需要详细信息 :)

无论如何,到目前为止,我有一个名为“新按钮”的按钮,当单击该按钮时,它会创建一个名为“测试”的新按钮,数量无限。现在,我的 GUI 设置如下:

Class Main 扩展了 JPanel(包含所有内容的主面板,大小设置为) Dimension size = new Dimension(300, 200); setPreferredSize(size);

持有Main JPanel的JFrame,调用如下:

panel.frame = new JFrame();
panel.frame.setResizable(false);
panel.frame.setTitle(panel.title);
panel.frame.add(panel);
panel.frame.pack();
panel.frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
panel.frame.setLocationRelativeTo(null);
panel.frame.setVisible(true);

那么,我将如何让 JFrame/JPanel 根据其中的组件设置它们的大小?我试过使用 panel.frame.pack();但我大部分时间都会出错,而其他时候它没有换行,它只是一条直线。我希望它以正方形的形式调整大小。有任何想法吗?抱歉,如果我的问题不清楚/措辞不佳,我一直在网上表达问题时遇到问题,亲自更好,因为我可以用手! :) 提前致谢!

【问题讨论】:

    标签: java swing user-interface jframe jpanel


    【解决方案1】:

    Class Main 扩展 JPanel(包含所有内容的主面板,大小设置为) Dimension size = new Dimension(300, 200); setPreferredSize(大小);

    不要设置面板​​的首选尺寸。布局管理器将根据您添加到面板的组件确定首选尺寸。

    其他时候它不换行,

    JPanel 的默认布局管理器是 FlowLayout。它不是为自动换行而设计的。也许使用不同的布局管理器。或者你可以试试Wrap Layout,它扩展了 FlowLayout 以提供动态包装。

    我尝试过使用 panel.frame.pack();但我大部分时间都会出错

    什么错误。使用 pack() 方法时,我从未见过错误。

    如果您需要更多帮助,请发布正确的SSCCE

    【讨论】:

      猜你喜欢
      • 2016-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-26
      • 2020-11-30
      • 1970-01-01
      • 2013-07-19
      相关资源
      最近更新 更多