2016-09-25 64 views
1

我试过这段代码,它显示的只是文本。主脚本是:为什么背景不显示?

import java.awt.Color; 
import java.awt.DisplayMode; 
import java.awt.Font; 
import java.awt.Graphics; 

import javax.swing.JFrame; 

public class Main extends JFrame{ 
    public static void main(String[] args) { 
     DisplayMode dm = new DisplayMode(800, 600, 32, DisplayMode.REFRESH_RATE_UNKNOWN); 
     Main m = new Main(); 
     m.run(dm); 

    } 
    public void run(DisplayMode dm){ 
     setBackground(Color.PINK); 
     setForeground(Color.WHITE); 
     setFont(new Font("Arial",Font.PLAIN,24)); 
     Screen s = new Screen(); 
     try { 
      s.setFullScreen(dm, this); 
     try{ 
      Thread.sleep(5000); 
     }catch(Exception ex){} 
    }finally{ 
     s.RestoreScreen(); 
    } 
    } 
    public void paint(Graphics g){ 
     g.drawString("hello", 200, 200); 
    } 
} 

其他屏幕类:

import java.awt.DisplayMode; 
import java.awt.Graphics; 
import java.awt.GraphicsDevice; 
import java.awt.GraphicsEnvironment; 
import java.awt.Window; 

import javax.swing.JFrame; 

public class Screen { 
    private GraphicsDevice gc; 
    public Screen(){ 
     GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment(); 
     gc = env.getDefaultScreenDevice(); 
    } 
    public void setFullScreen(DisplayMode dm, JFrame window){ 
     window.setUndecorated(true); 
     window.setResizable(false); 
     gc.setFullScreenWindow(window); 
     if (dm != null && gc.isDisplayChangeSupported()){ 
      try{ 
       gc.setDisplayMode(dm); 
      }catch(Exception ex){} 
     } 
    } 
    public Window getFullScreenWindow(){ 
     return gc.getFullScreenWindow(); 
    } 
    public void RestoreScreen(){ 
     Window w = gc.getFullScreenWindow(); 
     if(w != null){ 
      w.dispose(); 
     } 
     gc.setFullScreenWindow(null); 
    } 
} 

我的代码是逐字逐句的教程中,我看:

https://thenewboston.com/videos.php?cat=30&video=17934

和他的工作。另外,当我将其切换到16位图形时,绘画方法甚至不起作用。请帮忙!

回答

0

在你的类主要在公共无效的运行类型:

Screen s = new Screen(); 
     try { 
      s.setFullScreen(dm, this); 
      try{ 
       Thread.sleep(5000); 
      }catch(Exception ex){} 
     }finally{ 
      s.RestoreScreen(); 
     } 
+0

谢谢!但屏幕仍然不显示 – user3150362

0

你忘了设定的JFrame可见

在你的全屏方法添加此

window.setVisible(真);