Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Windows 8全屏?_Java_Fullscreen_Windows 8 - Fatal编程技术网

Java Windows 8全屏?

Java Windows 8全屏?,java,fullscreen,windows-8,Java,Fullscreen,Windows 8,我的类主窗口中有此代码: public MainWindow() { super("Shouldn't be visible..."); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setAlwaysOnTop(true); setUndecorated(true); setCursor(Cursor.getPredefinedCursor(Cursor.CROSSHAIR_CURSOR));

我的类
主窗口中有此代码

public MainWindow() {
    super("Shouldn't be visible...");
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setAlwaysOnTop(true);
    setUndecorated(true);
    setCursor(Cursor.getPredefinedCursor(Cursor.CROSSHAIR_CURSOR));

    addFocusListener(new FocusLostExiter());
    addKeyListener(new EscListener());

    setContentPane(canvas);

    getContentPane().setPreferredSize(Toolkit.getDefaultToolkit().getScreenSize());
    pack();
    setResizable(false);
}

public void setFullScreen(boolean b) {
    if(!b) {
        device.setFullScreenWindow(null);
    }
    setVisible(b);
    //System.out.println(device.getFullScreenWindow());
    if(b) {
        device.setFullScreenWindow(this);
    }
}

在Windows7+Java6中,它可以像全屏一样正常工作。我可以点击任何地方没有问题。然而,在Windows8+Java6中,除了靠近顶部的大约100个像素和“开始”按钮所在的框之外,所有最左边的像素列都被弄乱了。在列和框中,我的光标再次变为普通鼠标,窗口将忽略我的单击。在“开始”框中,单击将显示“开始”菜单,而不是给我的程序一个单击事件。这似乎是Java的一个问题,因为除了W8,它在任何地方都可以工作。您知道哪里出了问题/如何解决它吗?

如果您的主窗口类是JFrame,那么您就不必使用
getContentPane()
。我认为您不需要设置全屏功能。

请在全屏上尝试此功能,通常最好使用原始屏幕大小的一半宽度和高度

Toolkit toolkit = Toolkit.getDefaultToolKit();

Dimension d = toolkit.getScreenSize();

int w = d.width;

int h = d.height;

setSize(w,h);

我以前也遇到过类似的问题,Windows机器上的窗口底部被切断,添加这些行修复了该问题:

frame.setLocationByPlatform(true);
frame.setExtendedState(JFrame.MAXIMIZED_BOTH);

假设您的MainWindow类扩展了JFrame,调用这两个方法就可以了。

您可以轻松地将其放入构造函数中

 Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
 setBounds(0,0,screenSize.width, screenSize.height);

从未正确回答过这个问题。。。这是Windows8本身的JRE问题。现在已修复。

Windows 8仍然是测试版,因此不要期望与您的驱动程序和Java VM完全兼容。但我们能期望它得到修复吗?Windows 8启动后,他们将进行修复,可能在之前;)它必须被修复,但我不知道什么时候。如果它在除W8之外的任何地方都能工作,我会说这是Win8的问题,而不是Java的问题。dumb one,你试过windows 8+Java 7吗?
public NewFrame(){

    this.setDefaultCloseOperation(EXIT_ON_CLOSE);

    this.setSize(Toolkit.getDefaultToolkit().getScreenSize());

    this.setVisible(true);

}