【发布时间】:2012-08-16 09:30:48
【问题描述】:
在下面的 GridBagLayout 代码中,我期望 JButton btn2 的指定最小尺寸在 JFrame 被调整为更小时得到遵守。但是当我将 JFrame 变小时,btn2 会变得小于其最小尺寸然后消失。
有人可以指出我做错了什么的正确方向吗?也许我必须设置包含按钮的 JPanel 的最小尺寸?
感谢任何帮助,谢谢!
JFrame frame = new JFrame();
frame.setSize(400,300);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
panel.setMinimumSize(new Dimension(400,300));
panel.setBackground(Color.RED);
panel.setLayout(new GridBagLayout());
GridBagConstraints gbc = null;
JButton btn1 = new JButton("btn1");
btn1.setPreferredSize(new Dimension(150,50));
btn1.setMinimumSize(new Dimension(150,50));
gbc = new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0,
GridBagConstraints.NORTHWEST, GridBagConstraints.NONE,
new Insets(0,0,0,0), 0, 0);
panel.add(btn1, gbc);
JButton btn2 = new JButton("btn2");
btn2.setPreferredSize(new Dimension(150,150));
btn2.setMinimumSize(new Dimension(150,150));
gbc = new GridBagConstraints(1, 0, 1, 1, 1.0, 1.0,
GridBagConstraints.NORTHWEST, GridBagConstraints.BOTH,
new Insets(0,0,100,100), 0, 0);
panel.add(btn2, gbc);
frame.getContentPane().add(panel);
frame.setVisible(true);
【问题讨论】:
-
不能解决你的问题,但不能经常重复:永远不要使用 setXXSize - stackoverflow.com/a/7229519/203657
标签: java swing layout-manager gridbaglayout