aButtonなどのボタンとともに、ウィンドウ内にいくつかのTextFieldがあります。TextField、Button、およびウィンドウはすべて setImmediate(True) を持っています。
TextField がフォーカスを失うと、いくつかの検証コードが実行され、失敗した場合は aButton.setEnabled(False); が呼び出されます。
1 つの TextField に誤ったデータが入力された後、フォーカスが失われると、デバッガーは aButton.setEnabled(False) が呼び出されたことを示しますが、aButton は引き続き有効に見えます。
ここから 2 つの可能性があります。
1.) 別の TextField のデータを変更してそのフィールドを終了する (フォーカスを失う) 場合、そのフィールドの検証が成功するかどうかはわかりますが、前の TextField がまだ無効であるため、システムは aButton.setEnabled(False) を呼び出すことを認識しています。今回は、aButton が視覚的に無効になっています。
2.) 視覚的に有効になっている aButton をクリックすると、次の警告が生成され、視覚的に無効になります: 警告: 無効なコンポーネントの変数の変更を無視します
現在 Vaadin 6.7.3 を使用しています
aButton を手動で無効に設定した後、すぐに aButton を強制的に視覚的に無効にする (クライアントを強制的に更新する) 既知の回避策はありますか?