是否可以在某些布局中重新排序容器中的组件?

时间:2014-06-04 08:06:58

标签: java swing layout-manager

有一些布局,例如FlowLayout,它们按照添加的顺序维护组件的顺序。

添加后是否可以对某些组件进行排列?或唯一的方法是清除所有组件并按新顺序再次添加它们?

1 个答案:

答案 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();
    }
});