Я использую 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();
Но мне кажется, чтокомпоненты воссоздаются, потому что они теряют некоторые обработчики (слушатели), которые они имели до таких манипуляций.Можете ли вы посоветовать другой способ переупорядочения компонентов в контейнере?