我正在尝试创建一个 JFrame 来记住它的窗口位置、大小以及它是否被最大化。为 windowClosing 事件使用 WindowListener 并将其边界保存到 Preferences 应该足够简单。
为了使它工作(如下设置),我需要在 JFrame 最大化(MAXIMIZED_BOTH ExtendedState)时提取 JFrame 的正常(NORMAL ExtendedState)边界。这是可能吗?考虑到正常边界存储在某个地方以便它恢复。
//...
addWindowListener(new WindowListener() {
///...
@Override
public void windowClosing(WindowEvent e) {
prefs.putBoolean("win_max",win_max);
if(winmax)
{
//win_x=?
//win_y=?
//win_w=?
//win_h=?
}
else
{
win_x=getX();
win_y=getY();
win_w=getWidth();
win_h=getHeight();
}
prefs.putInt("win_x",win_x);
prefs.putInt("win_y",win_y);
prefs.putInt("win_w",win_w);
prefs.putInt("win_h",win_h);
}
});
//...
如果这是一个非常简单的问题,我深表歉意。任何帮助表示赞赏。