現在、Java スイングのJTable/にフォーカスの問題があります。JTextEditorにはJTableカスタム セル エディタがあり、JTextField.
問題は、セルの編集中に無効なデータが含まれている場合に、ユーザーが をクリックするJButtonと、テキスト フィールドの編集が停止し、JButtonactionPerformed (クリックされた) が呼び出されることです。はJTable#setValueAt検証を処理するため、 のデータJTextFieldが無効な場合、基になるデータTableModelは更新されません。
JButton理想的には、クリックを発生させたくありません。フォーカスはJTableまたは にとどまる必要がありJTextFieldます。
ボタンをクリックすると、送信アクションが実行され、テーブルが含まれるフレームが閉じられます。 の検証ではTableModel#setValueAt値が更新されないため、古い値が送信されます。
これはできますか?私はまだSwingにかなり慣れていないので、何をチェックすればよいかわかりません。
残念ながら、私たちのコードは簡単ではありません。UI は XML から構築され、ボタンはフォーム上の他のものについて何も認識しません (これは私が継承したコードです)。
.net では、Validating イベントを処理してキャンセル フラグを設定することで、コントロールがフォーカスを失うのを止めることができます。Javaにも同様のメカニズムがありますか。