当前位置: 代码迷 >> Java相关 >> 全屏显示的问题
  详细解决方案

全屏显示的问题

热度:138   发布时间:2006-03-20 12:27:00.0
全屏显示的问题

我想全屏显示一张图片,程序编译成功,且能运行,但有时会抛出异常,代码如下:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class FullScreenTest{
public static void main(String agrs[]){
GraphicsEnvironment ge=GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice gd=ge.getDefaultScreenDevice();
FullScreenWindow myWindow=new FullScreenWindow();
if(gd.isFullScreenSupported())
gd.setFullScreenWindow(myWindow);
else
System.out.println("Unsupported");
}
}

class FullScreenWindow extends JWindow {
Image m;
MediaTracker mt;
public FullScreenWindow(){
mt=new MediaTracker(this);
m=Toolkit.getDefaultToolkit().getImage("B8.jpg");//显示图片
mt.addImage(m,0);
try{
mt.waitForID(0);
}catch(InterruptedException e){e.printStackTrace();}
this.addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent e){
quit();
}
});
}

public void quit(){
this.dispose();
}
public void paint(Graphics g){
g.drawImage(m,0,0,this);
g.setFont(new Font("Arial",Font.BOLD,30));
g.setColor(Color.RED);
g.drawString("this is fullscreen",100,100);
}
}

但有时会出现如下的异常,请问为什么,如何解决?

java.lang.InternalError: Could not get display mode
at sun.awt.Win32GraphicsDevice.getCurrentDisplayMode(Native Method)
at sun.awt.Win32GraphicsDevice.getDisplayMode(Win32GraphicsDevice.java:329)
at java.awt.GraphicsDevice.setFullScreenWindow(GraphicsDevice.java:195)
at sun.awt.Win32GraphicsDevice.setFullScreenWindow(Win32GraphicsDevice.java:261)
at FullScreenTest.main(FullScreenTest.java:11)
Exception in thread "main"

搜索更多相关的解决方案: import  awt  java  public  myWindow  

----------------解决方案--------------------------------------------------------

我这里运行的时候是一点问题都没有啊


----------------解决方案--------------------------------------------------------
我是有时会出现异常,有时就没事,所以觉得很奇怪
----------------解决方案--------------------------------------------------------
java.lang.InternalError: Could not get display mode

看你的异常信息,是说获取不到显示模式
我觉得挺奇怪的,怎么会获取不到显示模式呢
你一般什么时候会出现这种错误


----------------解决方案--------------------------------------------------------

这个很难说,有时运行第一次可以,叫我朋友来看,再运行一次就出问题了,搞都搞不明白,最近在对全屏幕感兴趣,对了,知不知道怎么可以定位屏幕坐标?还有,做屏幕保护程序的思想是怎样的?


----------------解决方案--------------------------------------------------------
用setBounds就可以了
至于怎么做屏保,我也不清楚

----------------解决方案--------------------------------------------------------
具体点,行不行?
----------------解决方案--------------------------------------------------------

比如,想把一个大小为(50,50)面板P放在100,300的位置,只要
P.setBounds(100,300,50,50);就可以了
====================================================
如果是全屏的话,就要用到FSEM模式了
你可以用g.drawImage(Image image,int x,int y,ImageObserver I);
来定位任何全屏显示时候的图片定位啊
但是要注意先后顺利,后来画的会把前面画的盖掉,


----------------解决方案--------------------------------------------------------
  相关解决方案