Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.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 全屏游戏窗口无法正确显示_Java_Swing_Jframe_Fullscreen - Fatal编程技术网

Java 全屏游戏窗口无法正确显示

Java 全屏游戏窗口无法正确显示,java,swing,jframe,fullscreen,Java,Swing,Jframe,Fullscreen,你好,我正在尝试创建一个全屏游戏的开始,我有问题。我想要一个带白色文本的蓝色背景,整个屏幕改为800*600。问题是我的屏幕中间有一个800*600的框(不可见,但我可以通过鼠标边界判断),而我的背景是黑色的。 我的代码: 这是一个简短的回答,因为您似乎走错了方向:) 游戏应该使用OpenGL或DirectX,因此图形工作由GPU完成。我强烈推荐OpenGL,因为它与所有平台都兼容。按照你开始的方式,游戏将完全在CPU上运行,这是不好的 看一看。它是一个跨平台库,允许您使用OpenGL。这

你好,我正在尝试创建一个全屏游戏的开始,我有问题。我想要一个带白色文本的蓝色背景,整个屏幕改为800*600。问题是我的屏幕中间有一个800*600的框(不可见,但我可以通过鼠标边界判断),而我的背景是黑色的。


我的代码:


这是一个简短的回答,因为您似乎走错了方向:)

游戏应该使用OpenGL或DirectX,因此图形工作由GPU完成。我强烈推荐OpenGL,因为它与所有平台都兼容。按照你开始的方式,游戏将完全在CPU上运行,这是不好的

看一看。它是一个跨平台库,允许您使用OpenGL。这将需要一些谷歌教程,但它确实是值得的。你的游戏表现会好很多,你的游戏也会按照它必须的方式进行。只是给你一个想法,Minecraft是用LWJGL制作的

OpenGL允许您使用一些简单的方法快速开始游戏开发,这是第一次体验游戏的好方法。稍后,您将了解如何更有效地完成工作,但这将是太多的信息,无法从以下开始:D
祝你好运

import java.awt.*;

import javax.swing.JFrame;
/**
 * Write a description of class Full here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
public class Full extends JFrame 
{

   public static void main(String[] args){
     DisplayMode dm = new DisplayMode(800,600,16, DisplayMode.REFRESH_RATE_UNKNOWN);  
     Full full = new Full();
     full.run(dm);

    }
   public void run(DisplayMode dm){
     setBackground(Color.BLUE);  
     setForeground(Color.WHITE);
     setFont(new Font("Arial", Font.PLAIN,24));

     Screen s = new Screen();
     try{
        s.setFullScreen(dm,this);
        try{
            Thread.sleep(15000);
        }catch(Exception ex){}
        }finally{
         s.restoreScreen();   
        }
    }
   public void paint(Graphics g){
       if(g instanceof Graphics2D){
           Graphics2D g2 = (Graphics2D) g;

g2.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
        }
       g.drawString("This is gonna be awesome!!",200,200);
    }
}

public class Screen
{
  private GraphicsDevice vc;
  Window myWindow;
  public Screen(){
      GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
      vc = env.getDefaultScreenDevice();
    }
  public void setFullScreen(DisplayMode dm, JFrame myWindow){
      myWindow.setUndecorated(true);
      myWindow.setResizable(false);
      vc.setFullScreenWindow(myWindow);

      if(dm != null && vc.isDisplayChangeSupported()){
          try{
             vc.setDisplayMode(dm); 
            }catch(Exception ex){}
        }
    }
  public Window getFullScreenWindow(){
      return vc.getFullScreenWindow();
    }
  public void restoreScreen(){
      Window w = vc.getFullScreenWindow();
      if(w != null){
          w.dispose();
        }
      vc.setFullScreenWindow(null);
    }
}