Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.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 Keyevent getID导致错误_Java_Swing_Fullscreen - Fatal编程技术网

Java Keyevent getID导致错误

Java Keyevent getID导致错误,java,swing,fullscreen,Java,Swing,Fullscreen,我试图制作一个游戏,角色是一个75x75的物体,他在屏幕上移动。但是,当我运行代码时,会出现以下错误: java.lang.IllegalArgumentException: Invalid display mode at sun.awt.Win32GraphicsDevice.setDisplayMode(Unknown Source) at sylvyrfysh.Screen.setFullScreen(Screen.java:17) at sylvyrfysh.ImageDrawer.ru

我试图制作一个游戏,角色是一个75x75的物体,他在屏幕上移动。但是,当我运行代码时,会出现以下错误:

java.lang.IllegalArgumentException: Invalid display mode
at sun.awt.Win32GraphicsDevice.setDisplayMode(Unknown Source)
at sylvyrfysh.Screen.setFullScreen(Screen.java:17)
at sylvyrfysh.ImageDrawer.run(ImageDrawer.java:26)
at sylvyrfysh.ImageDrawer.main(ImageDrawer.java:17)
at sylvyrfysh.Main.main(Main.java:7)
我不确定是什么原因导致了这种情况,因为我制作了另一个具有相同DisplayMode参数的项目,并且工作正常。 包装sylvyrfysh

import game.infos.Information;
import java.awt.*;
import javax.swing.*;

public class ImageDrawer extends JFrame{
    /**
     * 
     */
    private static final long serialVersionUID = -4278324581016693552L;
    public static void main() throws InterruptedException{
        DisplayMode dm=new DisplayMode(Information.sX,Information.sY,16,DisplayMode.REFRESH_RATE_UNKNOWN);
        ImageDrawer i=new ImageDrawer();
        i.run(dm);
    }
    private void loader(){
        bg=new ImageIcon("src/sylvyrfysh/maze_icon.png").getImage();
        chara=new ImageIcon("src/sylvyrfysh/char.png").getImage();
    }
    private void run(DisplayMode dm){
        System.out.println("HI");
        loader();
        s=new Screen();
        s.setFullScreen(dm,this);//error here
        repaint();
        while(EHandler.run){
            if(rp){
                repaint();
                rp=false;
            }
        }
    }
    public void paint(Graphics g){
        g.drawImage(bg,0,0,null);
        g.drawImage(bg,360,0,null);
        g.drawImage(bg,720,0,null);
        g.drawImage(bg,0,480,null);
        g.drawImage(bg,360,480,null);
        g.drawImage(bg,720,480,null);
        g.drawImage(chara,imgX,imgX,null);
    }
    private Image bg,chara;
    Screen s;
    public static int imgX=0;
    public static int imgY=525;
    public static Boolean rp=false;
}

任何帮助都将不胜感激。

能够更改图形设备的 显示模式取决于平台和配置,可能并不总是可用<代码>图形设备。在更改图形设备上的显示模式之前,应使用isDisplayChangeSupported()进行检查


还提出了一些重要的建议。

使用显示模式的具体原因是什么?这是为了实现全屏窗口吗?在设置全屏之前,我会检查是否支持更改。我想这个答案应该是注释。我的坏:(原来我的显示器可以显示800x600,但不能显示750x600。无论如何,谢谢你。)该死的,我应该这么说。不管怎样,你总是受欢迎的。