2

我无法让自定义 JFrame 在最小化后正确最大化。这是我经历的过程:我打开框架,最大化它(下面的代码),最小化它,然后从扩展坞重新打开程序。但是,当我重新打开框架时,它会恢复到原来的大小,而不是最小化之前的最大化大小。

这些方法在按下最大化和最小化按钮时被调用。这是一个自定义的 JFrame,它没有装饰,所以我为这些操作制作了按钮。

private void maximizeAction(){
    setExtendedState(getExtendedState() | Frame.MAXIMIZED_BOTH);
}//=================================

private void minimizeAction(){
    setExtendedState(Frame.ICONIFIED);
}//=================================

我尝试setPreferredSize(new Dimension(screenWidth, screenHeight));在最大化函数中添加一行,但是当我重新打开它时,这并没有改变框架的行为。

其他可能的促成因素可能是:

  • 框架具有透明度和独特的框架形状,因此我覆盖了该paint()命令。但是,我使用继承变量,所以这些应该是准确的。就好像框架已经忘记了它有多大。
4

1 回答 1

2

您需要保持之前的扩展状态。

private void minimizeAction(){
    setExtendedState(getExtendedState() | Frame.ICONIFIED);
}//=================================
于 2013-02-17T02:20:03.353 回答