У JComponent есть отличный метод setName("NAME"), который позволяет найти компонент. Загвоздка вся в том, что метод должен быть рекурсивным. И после продолжительных мучений получилось:
private JComponent findComponent(JComponent parent, String name) {
for (int i = 0; i < parent.getComponentCount(); i++) {
if (parent.getComponent(i) instanceof JComponent) {
JComponent component = (JComponent) parent.getComponent(i);
if (component.getName() != null && component.getName().equals(name)) {
return component;
}
if (component.getComponentCount() > 0) {
JComponent child = findComponent(component, name);
if (child != null && child.getName() != null && child.getName().equals(name)) {
return child;
}
}
}
}
return null;
Код, конечно, получился немного козий, но зато работает )))))
Немає коментарів:
Дописати коментар