Java GUI: объектная модель документа
HTML имеет объектную модель документа, которую Javascript может затем манипулировать / перемещать.
Когда я создаю GUI в Swing - модель кажется очень разной (я не знаю названия модели), так как я создаю менеджеры компоновки и вставляю объекты внутри них.
Мой вопрос: есть ли способ манипулировать Java-интерфейсом в стиле DOM?
[Например, я хочу иметь возможность удалять / добавлять узлы, перемещать дочерние объекты и т. Д...]
Спасибо!
2 ответа
Для компонентов Swing все начинается с набора JFrame (у вас также могут быть JWindow и JDialog, но обычно у вас есть по крайней мере один корневой фрейм). Скорее всего, все, что вас волнует, это contentPane этого JFrame (но вы также можете позаботиться о его собственных Windows и т. Д.).
Итак, из JFrame вы можете получить панель контента следующим образом:
Container contentPane = frame.getContentPane();
Оттуда вы можете начать спускаться по дереву компонентов, используя:
Component[] children = contentPane.getComponents();
От ребенка вы можете получить его родителя с помощью:
Container parent = child.getParent();
Чтобы добавить компонент в контейнер:
container.add(someComponent);
container.validate();
Чтобы удалить компонент из контейнера:
container.remove(someComponent);
container.validate();
Чтобы переместить компонент из одного контейнера в другой, просто удалите его из одного и добавьте в другой.
Я не уверен, что это отвечает на ваш вопрос. Было бы проще, если бы вы могли опубликовать реальные примеры того, что вы пытаетесь сделать.
Я не уверен, что это решает ваши проблемы, но есть наборы инструментов Java UI на основе XML.