こんにちは?誰もが次のような問題を抱えていました:一度に複数のフィールドでカーソルが点滅していますか? 私の場合、次のことが起こります: フィールド JTextField をダブルクリックすると、JDialog が開きます。これを閉じると、画面を開く前にクリックしたフィールドにフォーカスが戻ります。
このアクションを実行した後、2 つのフィールドが同時に点滅します (通常、最初のフィールド画面と、efetuei がダブルクリックしたフィールド)。このメディアはランダムで、発生しない場合があります。
クラス DefaultCaret より具体的には actionPerformed メソッドに含まれる内部クラス Handler をデバッグすると、時間はフィールドであり、時間は別のフィールドであり、正確に点滅しているフィールドであることに気付きました (q は明らかなようです)。しかし、それらはメソッドを呼び出している Java の独自の内部クラスです。
タブを使用してフィールドを通過すると、カーソル false が消えます。
私はJDK 6を使用しています
invokeLater() 内でフォーカスを返しましたが、解決されませんでした。両方がシンクロフラッシュになりました
フォーカス可能な最初の JComponent は、不適切に点滅するフィールドの 1 つです。
私は独自の FocusTraversalPolicy を使用していますが、それが影響している可能性はありますか? 面白いことに、私のクラスには特に変な扱いはありません。
Syncronized getFirstComponent() 内のメソッドを使用する標準の Java クラスに気付きましたが、同じコントロールを追加しましたが、それでも問題ありません。