【发布时间】:2011-11-21 09:34:51
【问题描述】:
我正在使用 java Swing。我创建了 JPanel 并用组件填充它。
JPanel panel = new JPanel();
for (JComponent c : components) {
panel.add(c);
}
我需要更改一些组件的顺序。可以肯定的是,我需要用定义的索引(oldIndex 和 newIndex)交换两个组件。 我知道,我可以通过panel.getComponents()获取所有的组件。
我只找到了一种方法。
Component[] components = panel.getComponents();
panel.removeAll();
components[oldIndex] = targetComponent;
components[newIndex] = transferComponent;
for (Component comp : components) {
panel.add(comp);
}
panel.validate();
但在我看来,组件正在重新创建,因为它们失去了在此类操作之前拥有的一些处理程序(侦听器)。 你能推荐另一种方法来重新排序容器中的组件吗?
【问题讨论】:
标签: java swing containers