1

老实说,我不太知道如何在标题中表达我的问题。因此,如果有人对我要问的内容有更清晰的了解,那么请善待编辑它,以造福人类。

我有以下代码:

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 窗口。这是为了给人一种应用程序实际上是一个系统的错觉。

谢谢你。

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

4

4 回答 4

3

全屏独占模式并不意味着内部有 Swing 组件。它是一种在 Java 中绘制图形的高性能方式(如果操作正确,可以尽可能多地受益于底层硬件)。

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

我已经包含了指向相应 API 部分的链接,它们应该可以帮助您入门。

于 2012-05-03T10:01:01.357 回答
2

我认为你所追求的是一个 MDI 应用程序。如果那是你之后的样子,你可以看看这里

于 2012-05-03T10:02:35.367 回答
1

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

于 2012-05-03T09:29:03.353 回答
0

你知道我也有同样的问题,我从我的经验中唯一知道的是,你可以使用 jinternal 框架并将其属性 undecorated 设置为 true,然后根据你的要求添加自定义标题栏。

于 2018-03-06T04:57:04.217 回答