如何将约束设置为GridBagLayout
问题描述:
我正在寻找一种方法来在第一行添加jlabel和jtextfield,并在第二行和jpanel的中心添加2个jbutton。但如何使用gridbaglayout设置约束?如何将约束设置为GridBagLayout
selectionPanel.add(new JLabel("Department Name"));
selectionPanel.add(new JTextField(deptName));
selectionPanel.add(addBut);
selectionPanel.add(deleteBut);
答
首先,您需要将布局设置为GridBagLayout
。
然后,您需要为每个组件创建新的GridBagConstraints
(这样,您将不会从下一个创建的组件中获取最后一个组件的值)。
在add()
方法中,您将传递组件和约束。
setLayout(new java.awt.GridBagLayout())
java.awt.GridBagConstraints constraints = new java.awt.GridBagConstraints();
constraints.anchor = java.awt.GridBagConstraints.LAST_LINE_END;
constraints.weighty = 0.1;
constraints.weightx = 0.3;
javax.swing.JButton unlockButton = new javax.swing.JButton("jbutton text");
add(unlockButton, constraints);
参见[如何使用的GridBagLayout(http://docs.oracle.com/javase/tutorial/uiswing/layout/gridbag.html)作为工作示例。你在其他帖子中也有一个例子(http://stackoverflow.com/questions/15388870/set-jbutton-size-in-gridlayout)。如果您有问题,请付出一些努力并发布[SSCCE](http://sscce.org/)。不要期望我们为您编写代码。 – camickr 2013-03-13 16:32:58