有没有办法删除框架装饰而不重新打开它?

时间:2014-12-31 03:07:41

标签: java jframe

我正在制作一个简单的圣经阅读器,我希望有一个全屏选项。默认情况下,帧最大化,但框架在那里。我有一个删除装饰的方法setFullScreen。但是,它在初始化后似乎没有更新。有办法解决这个问题吗?

setFullScreen方法:

public void setFullScreen() {
    mainFrame.setUndecorated(true);
}

main方法的一部分

UI book = new UI();
book.setLabelText(1);
book.setFullScreen();

与此同时,setLabelText的行为也会相似;一旦我第一次设置它,我就无法改变它。

1 个答案:

答案 0 :(得分:6)

方法setUndecorated()只能在框架不是可显示时使用。你可以做的是通过调用dispose()使你的框架不能可显示

您的方法setFullScreen()可能如下所示:

public void setFullScreen() {
    mainFrame.dispose();
    mainFrame.setUndecorated(true);
    mainFrame.setVisible(true);
}

根据您的相框内容,您可能需要明确处理pack()和/或setSize()以获得最佳效果。

顺便说一句,如果您希望它始终是全屏/未修饰的,您可以简单地确保在使框架可显示之前调用mainFrame.setUndecorated(true)。框架可通过show()pack()setVisible(true)等方式显示。