DevFaqExplorerManagerJa
ExplorerManager とは何ですか?
Explorer view ( Node を表示する Swing コンポーネント ) によって表示される Node を、直接その Explorer view コンポーネントのメソッドを呼ぶことによって設定してはいけません。 Node は、そのコンポーネントのマネージャを見つけることによって設定します。マネージャは、どんな Node が表示されていて、選択されているかなどを担当するものです。
マネージャは明らかに Explorer view によって用意されるかもしれませんが、通常、これは必要ではありません。あなたが Swing コンポーネントに view コンポーネント ( BeanTreeView などのような ) を追加するとき、 ExplorerManager.Provider ( getExplorerManager() という1つのメソッドを持つインタフェース ) を実装するコンポーネントを探して、最後まで親を次々と(親の親のように)探します。その ExplorerManager は何が表示されるかを決定するものです。
これは不要な層による間接的な指定のように見えるかもしれませんが、実際にはかなり強力です。非常に簡単にウィンドウズエクスプローラーのような master-detail view を作成することが可能になります。ただ単順に、 ExplorerManager.Provider を実装する JPanel のサブクラスに2つの view を追加してください。それはまさしくウィンドウズエクスプローラーでフォルダーを選択するのがそうであるように、一つは選択を変える、もう一つは選択されたオブジェクトの子を表示することを非常に簡単に設定できます。
ExplolerManager の javadoc も見てください。 メインウインドウに explorer view を表示させることに関する FAQ には ExplolerManager の簡単な使用例が含まれています。
