有一些布局,例如FlowLayout
,它们按照添加的顺序维护组件的顺序。
添加后是否可以对某些组件进行排列?或唯一的方法是清除所有组件并按新顺序再次添加它们?
答案 0 :(得分:2)
您可以使用JPanel#add(component,index)
和JPanel#remove(index)
无需从容器中删除所有组件。只需移除所需组件并在所需位置添加新组件即可。
示例代码:
final JPanel panel = new JPanel(new FlowLayout());
for (int i = 0; i < 10; i++) {
panel.add(new JButton(String.valueOf(i)));
}
JButton remove = new JButton("Remove");
remove.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
panel.remove(2);
panel.revalidate();
}
});
JButton add = new JButton("Add");
add.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
panel.add(new JButton("21"), 2);
panel.revalidate();
}
});