ユーザーがアプリケーションのデータを編集できるように、単純な Swing GUI を開発しました。UI はかなりシンプルです。
- JTabbedPane を含む JFrame。
- 各タブは、データの側面を編集するツールを提供する JPanel の 1 つのサブクラスで構成されます。
- データ自体は 1 つのオブジェクトに含まれ、参照は各 JPanel に渡されます。
しかし、問題があります。異なる JPanels を同期する必要があります。
たとえば、データ オブジェクトには人のリストとタスクのリストが格納されます。
1 つの JPanel で、ユーザーは人物を編集できます。新しい人物を作成したり、既存の人物を削除したりできます。
2 番目の JPanel を使用すると、ユーザーは人をタスクに割り当てることができます。
両方の JPanel は、最初に開いたときに初期化されます。コンポーネントが作成され、レイアウトが設定されます。これで、ユーザーは UI の操作を開始できます。
- JTabbedPane の最初のタブを開き、最初の Person を作成します。
- 彼は 2 番目のタブを開きます。2 番目のタブのコンポーネントが初期化され、使用可能な 1 人の人物がリストされます。彼はタスクを割り当てます。
- 彼は最初のタブに戻り、2 人目の人物を作成します。
- 彼は新しい人に対処するために 2 番目のタブに戻ります。
ただし、2 番目のタブとそこに含まれる JPanel は既に初期化されています。JPanel が更新されない限り、ユーザーには 2 番目の人は表示されません。タブ 2 の JPanel サブクラスにカスタム update メソッドを実装しました。
コンポーネントが再描画されたときにコンポーネントで発生する Swing イベントが必要です。