問題の処理: Swing タイマーでの Flash の動作
提供された Java コードでは、バックグラウンドを更新するためにタイマーが ActionListener で構成されています。テキストフィールドの色を交互に並べます。タイマーは ActionListener を適切にトリガーしますが、色の変化は最初の反復でのみ観察されます。
根本原因
主なエラーは、ActionListener のカスタム実装にあります。 。具体的には、次の 2 つの問題が適切な機能を妨げています:
解像度
次の変更を実装します:
<code class="java">@Override public void actionPerformed(ActionEvent evt) { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { if (flasher) { SpreademPanel.historyPnl.NameTxt.setBackground(Color.white); } else { SpreademPanel.historyPnl.NameTxt.setBackground(Color.pink); } flasher = !flasher; } }); } //actionPerformed</code>
これらの変更を適用すると、タイマーはテキスト フィールドの背景色を継続的に効果的に更新します。
以上がTextField が 1 回だけ点滅するのはなぜですか? (Swing Timer と ActionListener の問題)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。