プログラミングの練習では、JSplitPaneを使用して、右側のフラクタルのレンダリング、左側の他のゴミ箱のウィンドウを作成しています。しかし、私は非常に奇妙な問題に遭遇しました。左の要素は完全にうまくいっていますが、右の要素も常に左揃えになっています。私が知る限り、右の要素には画面の右側の部分のサイズが与えられますが、左の要素は常に上にあります。Java Swing:JSplitPaneの右要素の配置
私はJSplitPaneのを作成し、このようにその要素を追加します。
splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, true);
splitPane.add(sidebar, JSplitPane.LEFT);
splitPane.add(fractalWindow, JSplitPane.RIGHT);
frame.add(splitPane);
私はJSplitPaneのを構築し、それにコンポーネントを追加(などsetLeftComponentとsetRightComponentを、使用)のさまざまな方法を試してみましたが、何でもIましたどちらのコンポーネントも常に左揃えにします。私は間違って何をしていますか?
EDIT:サイドバーはJPanel、フラクタルウィンドウはJPanelのサブクラスです。フラクタルウィンドウを別のJPanelに追加してsplitPaneに追加しようとしましたが、右のコンポーネントが描画されません。私はJFrameフレームのレイアウトを指定していません。
EDIT 2:解決されました。私のFractal
クラスはメソッドgetX()
とgetY()
を使っていましたが、私がこれらをオーバーライドしているかどうかはわかりませんでした。通常はどちらも0を返します。つまり、JPanelは常に親コンポーネントの左上隅に配置されます。
これはおそらく 'フラクタルウインドウ 'のLayoutManager –
が私の答えをテストしたことが原因でしょうか? – ItamarG3
1)すぐに役立つようにするには、[MCVE]または[短く、自己完結型の正しい例](http://www.sscce.org/)を投稿してください。 2)ASCIIアート、またはGUIの*意図された*レイアウトの簡単な図を最小サイズで提供し、サイズ変更可能な場合は幅と高さを増やします。 –