3

私は現在Java GUIアプリケーションを構築しており、少なくとも私のように比較的経験の浅い人にとっては、かなりの思考が必要と思われるものを実装しようとしています。

状況

Customerジョブのコレクションを保持するドメイン レベルのクラスがあり、これもクラスです ( Job)。このアプリケーションは、顧客と顧客のために行う仕事を管理したい架空の園芸会社を対象としています。

GUI レベルでは、すべての顧客用の jList があり、拡張されたカスタム リストモデルがありますAbstractListModel。私のアプリケーションのこの部分は完全に機能し、顧客を簡単に追加/編集/削除できます。

目標

ここで、 jList で選択された顧客の求人を表示するjTableを実装します。

間違いなく custom が必要TableModelです。問題は、どこからデータを取得するかです。Customerクラス内のジョブのコレクションは でArrayListあり、クラスにはこの ArrayListを直接返すメソッドがないことに注意してください。コレクションを変更できるようにしたくないので、コピーを取得することしかできません。パブリックコンテキストから直接クラスで。

私の考え

パラメータを使用して、テーブルモデルに内部コレクションを変更するメソッドを持たせることcustomerです。インデックスがjList変更された場合は、そのメソッドを呼び出して、jTableJobが顧客のために行われた s を表すようにする必要があります。ジョブを編集/作成/削除する必要がある場合、変更は常にテーブルモデルで最初に行われ、オブジェクトに変更が反映されcustomerます(新しいジョブまたはジョブの削除の場合)。

質問

それはそれを実装する良い方法ですか?テーブルモデルを介してまたはに直接変更を加えるのを忘れると、矛盾とトラブルが発生するため、そうではないと思います。より良い方法はありますか?他のものを変更する必要がある場合は、気にしません。JobCustomerJob

(オプション) 小さなサブ質問

CollectionJavaのさまざまな s に関する知識が不足しています。私は通常ArrayList、この場合Customerの (変更可能な) ジョブのように、 を使用します。これより良いコレクションはありますか?

4

1 に答える 1