在我的Swing应用程序中,我希望能够在装饰和未装饰之间切换,而无需重新创建整个框架。但是,在框架可见后,API不允许我调用setUndecorated()

即使我调用setVisible(false)isDisplayable()仍然返回true。 API表示,使框架无法显示的唯一方法是重新创建框架。但是,我不想重新创建框架只是为了关闭一些标题栏。

我正在制作一个可全屏显示的应用程序,可以在全屏和窗口模式之间切换;它应该能够在保持状态等的同时进行切换。

框架可见后,我该怎么做?

最佳答案

你不能当我尝试实现相同目标时,这就是我的经验。

但是,如果整个UI都在框架中的一个面板中,则可以创建一个新框架并将该面板添加到框架中。没有太多的工作。

像这样:

// to start with
JPanel myUI = createUIPanel();
JFrame frame = new JFrame();
frame.add(myUI);

// .. and later ...

JFrame newFrame = new JFrame();
newFrame.setUndecorated();
newFrame.add(myUI);

在Swing中,面板(实际上是组件的任何实例)一次只能位于一帧中,因此,当将其添加到新框架中时,它会立即不再位于旧框架中。

关于java - 帧可见后如何调用setUndecorated()?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/875132/

10-13 04:09