2つのJTableを介して表示する必要のあるデータがいくつかあります。データは同じですが、テーブルごとに少し異なって表示する必要があります。また、外部接続(この場合はJMSですが、実際には問題ではなく、DBなど)からデータを受信します。
私はSwingを初めて使用するため、誰がイベントを発生させるか、誰がイベントをリッスンするか、データセットを変更するために両方のテーブルを更新する方法について、まだ少し混乱しています。
さて、私のデータセット構造の小さな例といくつかのダミーデータ:
class Student{ String name; Classroom classroom; boolean goodStudent}
class Classroom{ Sting name; List<String> coursesTaught; List<Student> students;}
public List<Classroom> classes;
基本的に、私のデータセットはclasses
Controllerクラスのフィールドになり、2つのJTableは異なる方法で物事を表示する必要があります。つまり、Table1は次のようなものを表示する必要があります。
Classroom Name | Courses
4a | CS101, CS102, CS103
4b | BM101, CS102
4c | I101, CS4100
つまり、基本的に、各クラスルームのコースのリストです。
Table2は、代わりに次のようなものを表示する必要があります。
Student Name | Good?
Mark Spencer | true
Philippe Mann | true
Tom Sayer | false
すべての教室から、すべての生徒に会う必要があります。
ご覧のとおり、データは同じですが、表示方法が異なります。私がやりたいのは、データが変更されると、テーブルも自動的に更新されるということです。これまで理解してきたこととして、AbstractTableModelをサブクラス化し、表示したい種類のデータ用に2つの異なるTableModelを作成する必要があります。私が得られないのは:
- 何らかの変更が発生した場合、モデルはどのようにデータを取得しますか?
- 誰がこの変更をモデルに通知する必要がありますか?
- 「fireTableXXXEvent()」を呼び出してビューの更新をトリガーするだけで十分ですか?
私は自分自身を十分に明確にしたことを願っています...とにかく、どうもありがとうございました!さよなら