HTMLにはドキュメントオブジェクトモデルがあり、Javascriptはそれを操作/移動できます。
SwingでGUIを作成すると、レイアウトマネージャーを作成し、その中にオブジェクトを貼り付けているため、モデルは非常に異なっているように見えます(モデルの名前はわかりません)。
私の質問:Java GUisをDOMのように操作する方法はありますか?
[たとえば、ノードの削除/追加、子の移動などができるようにしたい...]
ありがとう!
HTMLにはドキュメントオブジェクトモデルがあり、Javascriptはそれを操作/移動できます。
SwingでGUIを作成すると、レイアウトマネージャーを作成し、その中にオブジェクトを貼り付けているため、モデルは非常に異なっているように見えます(モデルの名前はわかりません)。
私の質問:Java GUisをDOMのように操作する方法はありますか?
[たとえば、ノードの削除/追加、子の移動などができるようにしたい...]
ありがとう!
Swingコンポーネントの場合、すべてがJFrameのセットから始まります(JWindowとJDialogを使用することもできますが、通常は少なくとも1つのルートフレームがあります)。ほとんどの場合、気になるのはその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();
コンポーネントをあるコンテナから別のコンテナに移動するには、コンポーネントを一方から削除して、もう一方に追加するだけです。
これがあなたの質問に答えるかどうかはわかりません。あなたがやろうとしていることの実際の例を投稿することができれば、それはより簡単でしょう。
これがあなたの懸念に対処するかどうかはわかりませんが、XML駆動のJavaUIツールキットがあります。