私は日付と時刻を処理するSwingアプリケーションを持っているので、システムの日付と時刻の設定を変更して多くのテストが行われます。テスト中に、クロックを減らした後、最初のクリックがアプリケーションによって無視されることに気付きました。
Swing / Java / Windowsのバグですか?これに対する回避策はありますか?
興味深いことに、この問題は、日付/時刻の設定を減らした場合にのみ発生します。増やすと、アプリケーションは正常に動作します。
状況:
- 実行中のSwingアプリケーション。
- Windowsの日付と時刻の設定を減らします(たとえば、時刻を15:00から14:00に変更します)。
- Swingアプリケーションを最初にクリックしても、アクションは発生しないことに注意してください。
コード例(状況を証明するために使用できます):
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JButton;
import javax.swing.JFrame;
public class Main {
public static void main(String[] args) {
final JFrame frame = new JFrame("frame");
final JButton button = new JButton("button");
button.addActionListener(new ActionListener() {
public void actionPerformed(final ActionEvent e) {
System.out.println("Button Pressed!");
}
});
frame.add(button);
frame.setSize(200, 200);
frame.setVisible(true);
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(final WindowEvent e) {
System.exit(0);
}
});
}
}