Java全屏模式无法在Ubuntu上运行
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java全屏模式无法在Ubuntu上运行相关的知识,希望对你有一定的参考价值。
所以我正在使用Ubuntu,当我想在Java中进入全屏模式时,会出现一个普通窗口,其中包含最大屏幕尺寸,而不是没有标题栏等的全屏窗口。我承认,我甚至不确定全屏模式应该是什么看起来像Java,因为我没有在任何其他操作系统上尝试过。但我认为它应该是没有标题栏的屏幕。有这个问题的其他人吗?
这是我使用的代码。 ;很直接。
public static void main(String[] args) {
GraphicsEnvironment env = GraphicsEnvironment
.getLocalGraphicsEnvironment();
GraphicsDevice vc = env.getDefaultScreenDevice();
JFrame window = new JFrame();
window.setUndecorated(false);
window.setResizable(false);
vc.setFullScreenWindow(window);
}
在Ubuntu(也可能是其他Linux发行版)上它不起作用。 Java中的全屏模式不能覆盖全屏。它会丢弃工具栏。永远,无论你做什么。
我尝试了上面的两个例子,来自官方FSEM tutorial和我知道的一些应用程序的例子正在使用Java / Swing和全屏模式(FreeCol和TripleX),没有人能够覆盖屏幕的任务/工具栏区域。
我的配置是Ubuntu 12.10,带有OpenJDK或SUN-JRE 1.7.0_09以及Unity或Gnome。有趣的是,对isFullScreenSupported()的java调用返回true。因此,虽然Java JRE表示它支持全屏独占,但事实并非如此。
一些可能的解释可能会在另一个question中给出。
在win7上,使用此代码(我按照@Gilberto的建议将未修饰的标志设置为true并添加了一个RED面板)它似乎工作正常。如果它在Ubuntu上不起作用,则可能意味着不支持FullScreen模式:
import java.awt.Color;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Main {
public static void main(String[] args) {
GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice vc = env.getDefaultScreenDevice();
JFrame window = new JFrame();
JPanel comp = new JPanel();
comp.setBackground(Color.RED);
window.add(comp);
window.setUndecorated(true);
window.setResizable(false);
vc.setFullScreenWindow(window);
}
}
这个帖子很老,但仍然有ACTUAL搜索结果,但答案错误。所以我会发布真实的解决方案。
Swing全屏将使用setExtendedState()函数设置,而不是使用setFullScreenWindow()函数!
JFrame myFrame = new JFrame();
....
myFrame.setExtendedState(MAXIMIZED_BOTH);
那么你将拥有一个装饰的全屏窗口,所有按钮和正确的工具栏光学器件,它可以与Ubuntu和任何其他操作系统一起使用。
虽然这在大多数情况下可能不适用,但我想分享我对此问题的解决方案。
就我而言,我经常需要为我们的大学机构开发Java / Scala应用程序(心理测试)。为了解决这个问题,我们决定在实验电脑上安装锯fish。
如果这个解决方案适用于您的需求,您可以通过Ubuntu工具(软件中心,Aptitute,apt-get)安装(一个非常过时的)锯鲆或者 - 我更喜欢 - 手动安装或编译最新的锯鲆。
其他窗口和/或桌面管理器可能会提供类似的功能,但是当我们尝试使用已禁用/已删除的面板的XFCE或LXDE时,我们会遇到工件。
以上是关于Java全屏模式无法在Ubuntu上运行的主要内容,如果未能解决你的问题,请参考以下文章