7

HTML 有一个文档对象模型,然后 Javascript 可以对其进行操作/移动。

当我在 Swing 中创建 GUI 时——模型看起来非常不同(我不知道模型的名称),因为我正在创建布局管理器,并将对象粘贴在其中。

我的问题:有没有办法以类似 DOM 的方式操作 Java GUI?

[例如,我希望能够删除/添加节点、移动孩子等...]

谢谢!

4

2 回答 2

7

对于 Swing 组件,一切都从一组 JFrame 开始(您也可以有 JWindow 和 JDialog,但通常至少有一个根框架)。最有可能的是,您只关心该 JFrame 的 contentPane(但您也可以关心它的ownedWindows 等...)。

因此,从 JFrame 中,您可以获得如下内容窗格:

Container contentPane = frame.getContentPane();

从那里,您可以开始使用以下组件树:

Component[] children = contentPane.getComponents();

从一个孩子,你可以得到它的父母:

Container parent = child.getParent();

要将组件添加到容器:

container.add(someComponent);
container.validate();

从容器中移除组件:

container.remove(someComponent);
container.validate();

要将组件从一个容器移动到另一个容器,只需将其从一个容器中移除并将其添加到另一个容器中即可。

我不确定这是否能回答您的问题。如果您可以发布您正在尝试做的事情的真实示例,那就更容易了。

于 2012-05-10T22:07:10.807 回答
3

我不确定这是否解决了您的顾虑,但有XML 驱动的 Java UI 工具包

于 2012-05-10T22:22:00.600 回答