私はJava JTreeパネルを実装しています。このパネルは、ツリー状の構造(複雑なリスト(異なるクラスのリスト)のリスト)からTreeModelビルドを保持します。私は定義したインターフェイスのセットに基づいて、外部のjar実装からこれらのデータ構造を取得します。ノードオブジェクトの状態が変更されたときに動的にJTreeビューを変更するにはどうすればよいですか?
トリノードには、チェックされたノードとすべての子ノードが「アクティブ」になることを示すチェックボックスが含まれています。つまり、ノードによって表されるオブジェクトは、データベース。
トリノードは、チェックボックスをオンにしないで、「アクティブ化」せずに選択することもできます。
さらに、プログラムの他の部分もデータモデルオブジェクトのアクティブ化状態を切り替えることができます。したがって、トレモデルが構築されるデータモデルは、アクティブ化状態のソースです。これは、チェックボックスを動的に(un)チェックすることによってツリービューに反映されなければなりません。
ここで、この全体を実装するにはどうすればよいですか?何が変わるのか聞き手は誰ですか?
ノードにあるすべてのクラスが、アクティベーションフィールドを保持する抽象クラスから拡張されました。これは真のデータソースです。このフィールドが変更されると、登録されたすべてのリスナー(EventListener)に通知する必要があります。これにはチェックボックスが含まれます。
また、デフォルトのTreeSelectionModelに基づいていますが、子供/親がチェックする必要があるかどうかをチェックする機能が拡張されたTreeSelectionModelもあります。
私の質問は本当にはっきりしないかもしれませんが、この複雑なコードもそうです。あなたが手伝ってくれることを願います。