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一样填充父布局。那么什么财产控制了它?
答案 0 :(得分:1)
我想让JButton像JTextField一样填充父布局。那么什么财产控制了它?
BoxLayout
尊重"最大尺寸"组件。
按钮的最大大小是"首选大小",因此如果您希望按钮增长,则需要覆盖按钮的getMaximumSize()
方法以至少返回维度框架的大小。
或者您可以使用的评论中提到:
GridLayout
以使所有组件的大小相同GridBagLayout
,允许组件根据需要增长。阅读Using Layout Managers上Swing教程中的部分,了解有关上述内容的更多信息。
答案 1 :(得分:0)
尝试使用BorderLayout
进行快速解决方案。
setLayout(new BorderLayout(0,0));
add(new JButton("button"),BorderLayout.WEST);
add(new JTextField("Text"),BorderLayout.CENTER);
这应该对你有用