HTML有一个文档对象模型,然后Javascript可以操作/移动。
当我在Swing中创建GUI时 - 模型看起来非常不同(我不知道模型的名称),因为我正在创建布局管理器,并在其中粘贴对象。
我的问题:是否有某种方式以类似DOM的方式操纵Java GUis?
[例如,我希望能够删除/添加节点,移动孩子等...]
谢谢!
答案 0 :(得分:7)
对于Swing组件,一切都从一组JFrame开始(你也可以有JWindow和JDialog,但你通常至少有一个根框架)。最有可能的是,你关心的只是那个JFrame的contentPane(但你也可以关心它拥有的Windows等等。)
因此,从JFrame中,您可以获得如下内容窗格:
Container contentPane = frame.getContentPane();
从那里开始,您可以使用以下命令开始关注组件树
Component[] children = contentPane.getComponents();
从孩子那里,你可以通过以下方式获得其父母:
Container parent = child.getParent();
将组件添加到容器中:
container.add(someComponent);
container.validate();
从容器中删除组件:
container.remove(someComponent);
container.validate();
要将组件从一个Container移动到另一个Container,只需将其从一个容器中移除并将其添加到另一个容器中即可。
我不确定这会回答你的问题。如果你能发布你想要做的事情的真实例子会更容易。
答案 1 :(得分:3)
我不确定这会解决您的疑虑,但有XML-driven Java UI toolkits。