我有一个处理日期和时间的 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);
}
});
}
}