JTable を使用して、ストリーミング データ フィードから取得したデータを表示します。
各データ ポイントは、関心のあるフィールドを 1 つ持つタイプ X のオブジェクトとして表されます。これを valueField と呼びましょう。私の TableModel インターフェイスの実装には、X.getId() をキーにしたオブジェクト X の HashMap があります。
GUI のユーザーは、関連する列の各セルのカスタム エディターとして JSpinner セットを使用して値を変更できます。
ただし、値は他の行の X.valueField の値にも依存します。
たとえば、私のテーブルは 3 つのオブジェクト X1、X2、および X3 を表しています。それらの関係は次のとおりです。
X1.valueField = X2.valueField + X3.valueField
ユーザーが X1 を変更すると、X2 と X3 のいずれかが (ビジネス ロジックに応じて) 一定に保たれ、もう一方の値が変更されて関係の一貫性が維持されます。同様に、ユーザーは X2 または X3 を変更することもできます。
TableModel の実装でリレーションシップをカプセル化する必要がありますか、それともカスタム テーブル エディターを拡張して、値が変化する方法を考慮に入れる必要がありますか?
どちらのアプローチもうまくいくと思いますが、どちらが正しいアプローチなのかはわかりません。Sun や他のフォーラムのドキュメントでは、カスタム エディターを拡張してフィールドの値を制御することを提案していますが、その値と基になるデータ モデルの他のメンバーとの関係は考慮されていません。
どんな考えでも大歓迎です。
00ラッシュ