GridBagLayout中的awt Java调整按钮
我怎样才能使按钮的高度大一点,左右栏的宽度相同。我试过weightx
{
Container contentPane = getContentPane();
contentPane.setLayout(new GridBagLayout());
GridBagConstraints c = new GridBagConstraints();
c.insets = new Insets(20,20,20,20);
c.fill = GridBagConstraints.HORIZONTAL;
c.weightx = 1.0;
JButton back = new JButton("Back to previous menu");
c.gridx = 1;
c.gridy = 0;
contentPane.add(back,c);
JLabel welcome = new JLabel("Hi secretary, please select an action");
c.gridx = 0;
c.gridy = 0;
contentPane.add(welcome,c);
有更多的按钮代码定义,但它只是定位自己的布局
# 1 楼答案
不要设置按钮的首选大小。这将给桌面字体与您不同的用户带来严重的视觉问题
您应该让按钮定义自己的首选大小。增加首选高度的最佳方法是使用GridBagConstraints.ipady:
另一种选择是使用JButton.setMargin为每个按钮提供额外的边距:
强制左右两侧具有相等的宽度更加困难。GridBagLayout无法做到这一点。当窗口比容纳所有子组件的首选尺寸所需的宽度更大时,
weightx
字段仅确定额外空间的分布。如果列的开始宽度不同,则使用weightx
分配额外空间不会使它们的宽度相等就我个人而言,我不认为强迫双方宽度相等会增加任何价值。如果坚持左右两侧宽度完全相等,则必须放弃使用GridBagLayout。SpringLayout可以做到,但很难使用。如果您愿意引入第三方依赖关系,像MiG Layout这样的东西可能可以做到这一点