繁体   English   中英

BoxLayout中可调整大小的JButton

[英]Resizeable JButton in BoxLayout

我有以下代码:

  public void showFrame() {
    var frame = new JFrame();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    var panel = frame.getContentPane();
    panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));

    panel.add(new Button("Button 1"));
    panel.add(new Button("Button 2"));
    panel.add(new Button("Button 3"));
    panel.add(new Button("Button 4"));
    panel.add(new JButton("Button 5"));

    frame.setSize(200, 300);
    frame.setVisible(true);
  }

生成以下表格:

呈现形式

按钮 1 到 4(AWT 按钮)与 window 一起调整大小。 但是按钮 5(Swing 按钮)的行为不同。

我希望按钮 5 也可以调整大小。 我相信我错过了一些东西。 有没有一种简单的方法可以使按钮 5 可调整大小?

我希望按钮 5 也可以调整大小。 我相信我错过了一些东西。 有没有一种简单的方法可以使按钮 5 可调整大小?

BoxLayout尊重组件的最小/最大尺寸。

默认情况下,对于 JButton,这些尺寸设置为首选尺寸。

如果您希望按钮增长,您需要覆盖按钮的getMaximumSize()方法以返回您想要的最大值的尺寸。

正如评论中所建议的,一个更简单的解决方案是使用GridLayout

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM