我在这里面临一个小问题。

我试图保存jFrame的实际位置,并在再次创建此框架后恢复该位置。

这是“保存”过程:

private void formWindowClosing(java.awt.event.WindowEvent evt) {
    Parent.Throttle_vorhanden = 0;
    root.Hauptfenster.LastPositionThrottlePlate=this.getLocation();
    this.dispose();
}


在这里,我尝试再次设置旧位置:

public Throttle(Hauptfenster parent, root.rs232.rs232Connection Conn, Integer throttlePosition) {
    super();
    Parent = parent;
    conn = Conn;
    actualThrottlePosition = throttlePosition;
    initComponents();

    jScrollBar2.setValue(root.Hauptfenster.MPR);
    this.setTitle("Throttle");

    this.setVisible(true);
    if (root.Hauptfenster.LastPositionThrottlePlate!=null) {
        this.setLocation(root.Hauptfenster.LastPositionThrottlePlate);
    }


稍为改变一下,我看到框架处于旧位置,但随后在屏幕中间“跳跃” ...

谁能想象为什么jFrame这样的行为?
对不起我的英语不好...

最佳答案

正确放置JFrame之后,将其设置为可见。

只需反转上次操作的顺序即可:

if (root.Hauptfenster.LastPositionThrottlePlate!=null) {
    this.setLocation(root.Hauptfenster.LastPositionThrottlePlate);
}

this.setVisible(true);

10-05 19:39