如何让 JButton 填充他的父 BoxLayout
How to make a JButton fill his parent BoxLayout
JFrame frame = new JFrame();
frame.setSize(400, 300);
JPanel panel = new JPanel() {{
setLayout(new BoxLayout(this, BoxLayout.X_AXIS));
add(new JButton("button"));
add(new JTextField("Text"));
}};
frame.setContentPane(panel);
frame.setVisible(true);
我想让 JButton 像 JTextField 一样填充父布局。那是什么属性控制的呢?
尝试使用 BorderLayout
快速解决。
setLayout(new BorderLayout(0,0));
add(new JButton("button"),BorderLayout.WEST);
add(new JTextField("Text"),BorderLayout.CENTER);
这应该适合你
I want to make JButton fill parent layout like JTextField. So what property controlled it?
BoxLayout
尊重组件的 "maximum size"。
按钮的最大尺寸是它的 "preferred size",所以如果你想让按钮变大,你需要覆盖按钮的 getMaximumSize()
方法到 return 的尺寸至少你的框架大小。
或者如评论中所述,您可以使用:
- a
GridLayout
使所有组件大小相同
- a
GridBagLayout
允许组件根据需要增长。
阅读有关 Using Layout Managers 的 Swing 教程部分,了解有关上述内容的更多信息。
JFrame frame = new JFrame();
frame.setSize(400, 300);
JPanel panel = new JPanel() {{
setLayout(new BoxLayout(this, BoxLayout.X_AXIS));
add(new JButton("button"));
add(new JTextField("Text"));
}};
frame.setContentPane(panel);
frame.setVisible(true);
我想让 JButton 像 JTextField 一样填充父布局。那是什么属性控制的呢?
尝试使用 BorderLayout
快速解决。
setLayout(new BorderLayout(0,0));
add(new JButton("button"),BorderLayout.WEST);
add(new JTextField("Text"),BorderLayout.CENTER);
这应该适合你
I want to make JButton fill parent layout like JTextField. So what property controlled it?
BoxLayout
尊重组件的 "maximum size"。
按钮的最大尺寸是它的 "preferred size",所以如果你想让按钮变大,你需要覆盖按钮的 getMaximumSize()
方法到 return 的尺寸至少你的框架大小。
或者如评论中所述,您可以使用:
- a
GridLayout
使所有组件大小相同 - a
GridBagLayout
允许组件根据需要增长。
阅读有关 Using Layout Managers 的 Swing 教程部分,了解有关上述内容的更多信息。