Jon*_*Jon 7 java ubuntu swing fullscreen jframe
所以我正在使用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);
}
Run Code Online (Sandbox Code Playgroud)
在 Ubuntu(可能还有其他 Linux 发行版)上它不起作用。Java 中的全屏模式不会覆盖整个屏幕。它忽略了工具栏。永远,无论你做什么。
我尝试了上面的两个示例以及官方 FSEM教程中的示例以及我知道的一些应用程序正在使用 Java/Swing 和全屏模式(FreeCol 和 TripleX),但没有人能够覆盖屏幕的任务/工具栏区域。
我的配置是 Ubuntu 12.10,带有 OpenJDK 或 SUN-JRE 1.7.0_09 以及 Unity 或 Gnome。有趣的是,java 对 isFullScreenSupported() 的调用返回 true。因此,虽然 Java JRE 声称它支持全屏独占,但事实并非如此。
一些可能的解释可能会在另一个问题中给出。
在win7上,使用这段代码(我按照@Gilberto的建议将未修饰的标志设置为true并添加了红色面板)似乎工作正常。如果它在 Ubuntu 上不起作用,则可能意味着不支持全屏模式:
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);
}
}
Run Code Online (Sandbox Code Playgroud)