アプリケーションの位置を保存するには、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: このコードの 2 つの異なる実行。