1

データベースにアクセスするアプリを構築していますが、現在、メイン テーブルを表示する SWT シェルがあります。ユーザーは、このテーブルから個々のレコードを開くことができ、レコード フォーム内から、同じ種類で異なるデータを含む 2 番目のフォームを開くことができます。いずれかのフォームのレコードが更新されると、その更新はメイン フォームに反映されます。私の問題は、開かれた最初のレコード フォームを更新できないことです。特定のタイプの開いているすべてのフォームを強制的に更新または再描画する方法はありますか、または同じタイプの複数のシェルを同時に更新できる方法はありますか。以下のスクリーンショットは、私がやろうとしていることを示しています。

ここに画像の説明を入力

スクリーンショットの詳細

    • メインフォーム
    • このフォームは現在、2 つのセカンダリ フォームのいずれかがデータベースのデータを変更すると更新されます。これは、二次フォームからテーブルをリロードすることによって行われます
  • B
    • これはデータ フォームの最初のインスタンスです
    • これは、データ フォームの 2 番目のインスタンスです。
    • 開くボタンをクリックすると、最初のデータフォームから開きます。私がやろうとしているのは、2 番目のフォームで何かを変更したときに、最初のデータ フォームを更新することです。
    • たとえば、タグ 295 White のレコードを開き、このレコードのデータを更新するときに、変更を 26 White のレコード フォームに表示したいと考えています。

これは理解しにくい質問であることは承知していますので、お気軽に詳細をお尋ねください。これを理解しようとして頭を悩ませています。

4

1 に答える 1

2

メイン フォームでは、Java を設定しますStack

Stack<DataForm> stack = new Stack<DataForm>(); 

Stackthis の参照をデータ フォームに渡します。

データ フォームのコンストラクタで、データ フォーム インスタンスを渡します。

stack.push(this);

データ フォームのデストラクタ (終了時) で、データ フォーム インスタンスを削除します。

int pos = stack.search(this);
stack.remove(pos);

すべてのフォームを更新する場合は、スタックをループします。

for (DataForm dataForm : stack) {
     // do the refresh
}
于 2012-07-19T16:38:28.743 に答える