你能把JFrame放在全屏独占模式吗?

问题描述 投票:1回答:4

说实话,我不太清楚如何在标题中表达我的问题。因此,如果有人对我想要提出的问题有了更清楚的认识,那么请为编辑它,以获得人类的更大利益。

我有以下代码:

public class Main {
  public static void main(String[] args) {
    GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
    GraphicsDevice gd = ge.getDefaultScreenDevice();

    JFrame frame = new JFrame();
    Window window = new Window(frame);

    JButton btn = new JButton("Quit");
    window.add(btn);

    if(gd.isFullScreenSupported())
        gd.setFullScreenWindow(window);

    btn.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
            GraphicsDevice gd = ge.getDefaultScreenDevice();
            gd.setFullScreenWindow(null);
        }
    });
}

}

我想要做的是制作一个以全屏模式说明的图书馆系统。在全屏模式下,应该有简单的框架窗口,其中包含文本字段等等......这里不需要沉重的2D / 3D图形......

我的问题是,退出按钮的大小调整以适应整个屏幕。我试图在框架,窗口甚至按钮上使用setBounds,setSize等......但它似乎并没有让我能够将按钮置于中间位置。

所以我的问题是:是否可以在JFrame应用程序窗口中设置JFrame应用程序窗口,该窗口设置为全屏独占模式?或者只能使用全屏独占模式和绘图等2D / 3D方法?

注意:我打算使用全屏模式的唯一方法是将其设置为黑色背景,并在应用程序中心的此黑色背景上有一个Jframe窗口。这是为了让人觉得应用程序实际上是一个系统。

谢谢。

附:请注意,退出按钮仅用于我自己的测试目的。它不会是实际系统的一部分,所以我的问题不在于如何调整这个特定的退出按钮的大小。

java swing jframe
4个回答
3
投票

全屏独占模式并不意味着内置Swing组件。它是一种用Java绘制图形的高性能方法(如果做得好,可以尽可能地利用底层硬件)。

您想要做的事情可以通过使用未装饰的JDesktopPane并在屏幕的尺寸上最大化来完成。然后继续使用JInternalFrame在JDesktopPane中有一个类似JFrame的窗口。

我已经包含了各个API部分的链接,它们可以帮助您入门。


2
投票

我认为您所追求的是MDI应用程序。如果这就是你的样子,你可以看看here


1
投票

您的问题是您没有正确使用布局管理器。了解布局管理器 - 在屏幕上放置和调整可视组件大小/调整大小的模块。然后决定你希望按钮看起来如何,然后决定使用哪个布局管理器。它会完成它的工作。


0
投票

你知道我也遇到了同样的问题,我从经验中得知的唯一一件事就是你可以使用jinternal框架并将其属性未修饰为true,然后根据你的要求添加自定义标题栏。

© www.soinside.com 2019 - 2024. All rights reserved.