当前位置: 首页 > 面试题库 >

如何在OSX上的Java中全屏显示

颛孙嘉玉
2023-03-14
问题内容

我一直在尝试并且无法在OSX系统的主显示屏上使用Java全屏模式。无论我尝试了什么,似乎都无法摆脱显示屏顶部的“苹果”菜单栏。我真的需要在整个屏幕上绘画。谁能告诉我如何摆脱菜单?

我已经附上了一个显示问题的示例类-在我的系统上,菜单仍然可见,我希望看到一个完全空白的屏幕。

import java.awt.*;
import java.awt.event.*;
import javax.swing.JFrame;

public class FullScreenFrame extends JFrame implements KeyListener {

    public FullScreenFrame () {
        addKeyListener(this);
        setUndecorated(true);
        GraphicsDevice gd = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();

        if (gd.isFullScreenSupported()) {
            try {
                gd.setFullScreenWindow(this);
            }
            finally {
                gd.setFullScreenWindow(null);
            }
        }
        else {
            System.err.println("Full screen not supported");
        }

        setVisible(true);
    }

    public void keyTyped(KeyEvent e) {}
    public void keyPressed(KeyEvent e) {}
    public void keyReleased(KeyEvent e) {
        setVisible(false);
        dispose();
    }

    public static void main (String [] args) {
        new FullScreenFrame();
    }
}

问题答案:

我认为您的问题在这里:

try {
        gd.setFullScreenWindow(this);
}
finally {
        gd.setFullScreenWindow(null);
}

finally 块总是执行,所以这里发生的是,您的窗口在短时间内(如果有的话)变为全屏,然后立即放弃了屏幕。

另外,根据Javadocs,setVisible(true)当您先前调用时,也没有必要。setFullScreenWindow(this)

所以我将构造函数更改为:

public FullScreenFrame() {
    addKeyListener(this);

    GraphicsDevice gd =
            GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();

    if (gd.isFullScreenSupported()) {
        setUndecorated(true);
        gd.setFullScreenWindow(this);
    } else {
        System.err.println("Full screen not supported");
        setSize(100, 100); // just something to let you see the window
        setVisible(true);
    }
}


 类似资料:
  • 问题内容: 如何(本机)在Java应用程序中实现OSX Lion的全屏功能? 给出的当前答案采用了一种很好的方法来实现某种全屏功能。我读过Eclipse也许可以使用Lion的“本机”全屏功能。这就是我要问的。 问题答案: 我在Apple的Java发行说明中发现了这一点: Mac OS X 10.7 Lion全屏支持 Lion上的Java应用程序现在可以按窗口选择“全屏”窗口功能。开发人员可以使用

  • 问题内容: 我在“ openSUSE 11.4(x86_64)”上以全屏模式运行Java应用程序时遇到问题。我正在使用Java 1.6.0_26-b03。 我尝试运行两个全屏应用程序示例: 来自Oracle网站的示例:Display Mode Test。 从Codealchemists下载的JDarkRoom.jar(简单文本编辑器)。 在这两种情况下,我都可以在应用程序上看到一个Linux任务栏

  • 问题内容: 如何以与IE,Firefox和Opera兼容的方式使访问者的浏览器使用JavaScript全屏显示? 问题答案: 这与您使用JavaScript进入全屏显示的时间非常接近:

  • 下面的程序适用于目录中的第一个. jpg。当第二次调用时,它会得到一个“_tkinter。图片"pyImage2"不存在"异常。为什么它会得到错误?有没有办法重用第一个图像而不是创建第二个? 导入系统,如果是系统,则导入操作系统。版本信息[0]==2: 导入Tkinter Tkinter=Tkinter其他:从PIL导入图像,ImageTk导入Tkinter 这是控制台输出。Traceback(最

  • 我的Android应用程序需要显示一个全屏位图作为背景,然后在上面使用OpenGL ES显示一些动态的3D图形(1.1或2.0--尚未决定)。背景图像是同一个应用程序中WebView组件的快照,因此它的尺寸已经完全适合屏幕。 我是OpenGL新手,但我知道显示位图的常规方法包括将其缩放成一个POT纹理(glTexImage2D)、配置矩阵、为矩形创建一些顶点并使用GLDraWarrays来显示。似

  • 问题内容: 我正在使用PIL库进行一些图像编辑。关键是,我不想每次都将图像保存在HDD上以在资源管理器中查看它。是否有一个小模块可以使我设置窗口并显示图像? 问题答案: 从PIL教程中: 一旦有了 Image 类的实例,就可以使用该类定义的方法来处理和操纵图像。例如,让我们显示刚刚加载的图像: 更新: 如今,该方法已正式记录在PIL的Pillow分支中,并说明了如何在不同的OS上实现该方法。