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.

Другие вопросы по тегам