标题:全屏显示的问题
只看楼主
steven403
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2005-8-9
 问题点数:0 回复次数:7 
全屏显示的问题

我想全屏显示一张图片,程序编译成功,且能运行,但有时会抛出异常,代码如下:
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 
2006-03-20 12:27
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
得分:0 

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


可惜不是你,陪我到最后
2006-03-20 12:59
steven403
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2005-8-9
得分:0 
我是有时会出现异常,有时就没事,所以觉得很奇怪

2006-03-20 13:02
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
得分:0 
java.lang.InternalError: Could not get display mode

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


可惜不是你,陪我到最后
2006-03-20 13:11
steven403
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2005-8-9
得分:0 

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


2006-03-20 14:21
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
得分:0 
用setBounds就可以了
至于怎么做屏保,我也不清楚

可惜不是你,陪我到最后
2006-03-20 14:39
steven403
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2005-8-9
得分:0 
具体点,行不行?

2006-03-20 22:35
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
得分:0 

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


可惜不是你,陪我到最后
2006-03-22 12:01



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-51550-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.267649 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved