为什么背景不显示?
问题描述:
我试过这段代码,它显示的只是文本。主脚本是:为什么背景不显示?
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位图形时,绘画方法甚至不起作用。请帮忙!
答
在你的类主要在公共无效的运行类型:
Screen s = new Screen();
try {
s.setFullScreen(dm, this);
try{
Thread.sleep(5000);
}catch(Exception ex){}
}finally{
s.RestoreScreen();
}
答
你忘了设定的JFrame可见
在你的全屏方法添加此
window.setVisible(真);
谢谢!但屏幕仍然不显示 – user3150362