2009-06-09 14 views
4

JTableとJTreeが同じモデルを共有する方法があるため、その基礎となるモデルの変更はすぐに両方のコンポーネントに反映されますか?JTableとJTreeを同期させる

+0

テーブルの行ベースの順序をツリーの親子順序にマッピングする計画はありますか? – basszero

答えて

4

これは探しているのかどうかはわかりませんが、ツリーテーブルの作成についてはSunの2つの部分からなるチュートリアルがあります。これは基本的にJTreeレンダラーが最初の列にあるJTableです。 チュートリアルリンク: part 1part 2

EDIT:

隠蔽を可能にツリーテーブル、(その最初の列にツリーを維持表成分のトピックに関する

と行の表示に基づいてツリーのユーザーの変更)NetBeansの実装がOutlineと呼ばれています。それは非常に使いやすいです。シンプルな例では、30分もかかっていませんでした。コードはthis answerにあります。ここ

ツリーテーブルのイメージである:

alt text http://img17.imageshack.us/img17/6643/picture1hz.png

0

インタフェースは異なるが、以下同じデータ構造を使用して実装する完全になんとかであるべきです。

2

ツリーとテーブルの両方を表現することができるタイプObjは、あなたがTableModelObjへの変化を観察し、それに応じて対応TreeModelを作成することができますいずれかがある場合、あなたはObjを実装することができます両方TableModelTreeModel( GUIオブジェクトを実装するビジネスオブジェクトが嫌いですが)TableModelTreeModelの両方を実装するクラスを作成し、Objへの変更が発生したことを知ることができます。

0

各レコードのプロパティとレコードごとに1つのテーブル行を含むツリーノードが必要な場合は、レコードのリストに基づいてTableModelインターフェイスとTreeModelインターフェイスに対してadaptersを作成するのは難しくありません。

0

を、最良の方法は、あなたのデータを表現するためにいくつかの種類のデータ構造(モデル)を作成し、TreeModelのを持っていることであり、共通に見えるのTableModelデータを引き出すためのデータ構造。これにより、両方のモデルが同じモデルを共有できるようになります。データが変更されたときに正しいイベントを発生させるだけで、両方のイベントが更新されます。

0

GlazedListsをご覧ください.JTableとJTreeの両方にEventListを使用できます。私はJTreeのレンダリングに慣れていませんが、GlazedListsのJTableの部分はかなり安定しています。

関連する問題