全屏透明度

时间:2015-09-03 16:20:05

标签: java graphics fullscreen

我现在正在关注新手的Java教程游戏开发,我刚刚完成了第五个视频,但我遇到了问题。 在这两个类中,我设置了屏幕,它的环境和一个基本的显示,但我无法看到我在我的run方法中创建的背景和前景,这个Bucky类使用来自以下Screen类的数据;

import java.awt.*;
import javax.swing.JFrame;

public class bucky extends JFrame{
    public static void main(String args[]){
                    //Dismension, Dismension, BitDetph, RefreshRate
        DisplayMode dm = new DisplayMode(800,600,16,DisplayMode.REFRESH_RATE_UNKNOWN);
        bucky b = new bucky();
        b.run(dm);

}
public void run(DisplayMode dm){
    setBackground(Color.PINK);
    getContentPane().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("This is gonna be awesome", 200, 200);
}
}

现在是Screen类

import java.awt.*;
import javax.swing.JFrame;
public class Screen {

private GraphicsDevice vc;

public Screen(){
    GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
    vc = env.getDefaultScreenDevice();
}

public void setFullScreen(DisplayMode dm, JFrame window){
    window.setUndecorated(true);
    window.setResizable(false);
    vc.setFullScreenWindow(window);

    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);
}
}

0 个答案:

没有答案