GUI とモデルを含むアプリケーションを構築しています。モデル内のフィールドが変更されたときに、Observer パターン (Java の組み込みインターフェースを使用) を使用して GUI を更新しています。
これは通常は正常に機能していますが、モデル内の特定の文字列変数 (具体的にはファイルの URL) が、モデル変数の値を実際に反映する 2 つの別個の JTextField (swing) によって変更される可能性がある状況があります。問題があります。
私が抱えている問題は、これらの JTextField の 1 つを変更すると、モデルの状態と他の JTextField の内容を更新する必要があるという事実に起因しています。My Model は、モデルの状態が変化した場合にのみ通知がオブザーバーに送信されるようにします。ただし、JTextField を変更するプロセスでは、テキスト コンテンツを空白にしてからリセットする必要があります。
あまり詳細には触れませんが、これの結果は、更新/通知プロセスが無限ループに陥ることです。この特定の問題のためにオブザーバーパターンを脇に置いて一時的にハッキングしましたが、同じコンポーネントに起因する変更によって特定のコンポーネントが「更新」されないようにするためのきちんとした方法を誰かが提案できるかどうか疑問に思っていました。
どんな助けでも感謝します。