我需要获取 JFrame 位置以保存应用程序位置。但问题是 getLocationOnScreen() 返回不正确的结果。或者至少看起来是这样。
public static void main(String[] args) {
final JFrame frame = new JFrame();
frame.setMinimumSize(new Dimension(200, 200));
frame.setVisible(true);
frame.setLocation(100, 100);
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
Point point = frame.getLocationOnScreen();
System.out.println(point);
}
});
}
在我看来,上面的代码必须产生 (100, 100),但它会打印“java.awt.Point[x=101,y=128]”。
如何获得正确的 (100, 100) 结果?
UPD:有时我也会得到 (100, 100) 或 (101, 128)。而且我真的无法理解它的逻辑。
UPD:此代码的两次不同运行。