[英]How to add two label with preferred size to a panel by using BorderLayout?
[英]how to add manually a label with a text field inside a panel using Java
我個人更喜歡GroupLayout
來完成這些任務。
GroupLayout layout = new GroupLayout(container);
container.setLayout(layout);
layout.setAutoCreateContainerGaps(true);
layout.setAutoCreateGaps(true);
Group groupLabels = layout.createParallelGroup();
Group groupFields = layout.createParallelGroup();
Group groupRows = layout.createSequentialGroup();
layout.setHorizontalGroup(layout.createSequentialGroup()
.addGroup(groupLabels)
.addGroup(groupFields));
layout.setVerticalGroup(groupRows);
for (int i = 0; i < 5; i++) {
JLabel label = new JLabel("ABCDEFGHIJ".substring(0, 2 + 2 * i));
JTextField field = new JTextField("ABCDEFGHIJ".substring(0, 2 + 2 * i));
groupLabels.addComponent(label);
groupFields.addComponent(field);
groupRows.addGroup(layout.createParallelGroup()
.addComponent(label)
.addComponent(field, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE));
}
如果要動態添加更多行,您唯一需要做的就是將相應的組件添加到三個組中,並在容器上調用validate
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.