私の環境:サーバーとクライアントを備えたマルチユーザーアプリケーション。サーバーは、現在どのフィールドが使用されているかを知っており、別のユーザーから編集できません。マルチユーザ環境のフォームで同じ値を編集しないようにするにはどうすればよいですか?
私は、JCheckBox、JTextField、JTextArea、JComboBoxのようないくつかのJComponentsを持つフォームを持っています。問題は、ユーザーがフィールドの値を編集できるかどうかを制御したいということです。ユーザーがフィールドの編集を許可されていない場合、コンポーネントは編集モードに移行することはできません。
例: ユーザーAがtextfieldの値を編集しています。 ユーザBが同じ値を編集しようとしました。彼は同じテキストフィールドをクリックします。この時点で、テキストフィールドが編集モードで切り替えられていないことを確認したいと思います。
誰かが、この小切手の正しい場所を知っていますか?すべての単一コンポーネントでチェックを実装する必要がありますか、またはフォーム内のすべてのJComponentsに適合するソリューションがありますか?
ありがとうございました
正確には、同時アクセスを避けるために、フォームコンポーネントがフィールドが現在編集されているかどうかを自分で確認することができます。サーバーはすでにどのフィールドが現在編集されているかを知っているので、コンポーネントはサーバーからの応答を待たなければなりません。私の問題は、コンポーネントが値を編集することができるかどうかをコンポーネントがいつサーバーに尋ねなければならないのか分からないということです。特に、このチェックは編集モードで変更する前に行う必要があります。 – Seffel
問題は、どこに尋ねても問題ではないということです。プロセス間でスレッドを同期させる「通常の」方法はないため、ユーザーがフィールドを編集して、フィールドを編集する権利を持っていないことを常に認識できるようにする必要があります。または、フィールドが現在他のユーザーによって編集されていないかどうかにかかわらず、すべてのフィールドを無効にし、ユーザーがサーバーに対するフィールドチェックをクリックするたびに行うことができます。しかし、それは非常に反応しないアプリケーションになります。 – AlexR