也许用到的机会很少但JDK还是为我们提供了这个的功能像许多软件中的打印预览功能还有某些文本编辑器中为了获得更大的编辑画面也用到了Swing全屏幕模式如果你有兴趣写一个像ACDSee这样的软件使用Swing全屏幕模式可以让用户看到更大的图片画面 如何使用Swing全屏幕模式? 关键是javaawt*里面的两个与显示设备有关的类GraphicsEnvironment和GraphicsDevice GraphicsEnvironment为Java应用程序提供了特定平台的 GraphicsDevice对象和 Font 对象集合这些GraphicsDevice可以是各种本机和远端机器的资源如屏幕打印机或者是Image Buffer甚至是GraphicsD绘图方法的目标对象 而GraphicsDevice就是指特定的图形环境了如屏幕和打印设备等这样我们就可以用GraphicsDevice来操纵屏幕了GraphicsDevice提供的setFullScreenWindow()方法就是设置全屏幕用的 由于GraphicsEnvironment的构造器是受保护的(protected)我们不能直接构造一个GraphicsEnvironment 对象来获得GraphicsDevice对象幸好它提供了getLocalGraphicsEnvironment()方法用来获得一个 GraphicsEnvironment实例 GraphicsEnvironment ge = GraphicsEnvironmentgetLocalGraphicsEnvironment(); 有了GraphicsEnvironment可以调用getDefaultScreenDevice方法获得当前的Swing全屏幕模式设备了 GraphicsDevice gd = gegetDefaultScreenDevice(); 自己动手体验一下 有了上面的简介写一个实例来体验一下吧 importjavaawtColor; importjavaawtFont; importjavaawtGraphics; importjavaawtGraphicsDevice; importjavaawtGraphicsEnvironment; importjavaawteventMouseAdapter; importjavaawteventMouseEvent; importjavaxswingJWindow; publicclassFullScreenTest{ publicstaticvoidmain(String[]args){ GraphicsEnvironmentGraphicsEnvironmentge= GraphicsEnvironmentgetLocalGraphicsEnvironment(); GraphicsDevicegd=gegetDefaultScreenDevice(); FullScreenWindowmyWindow=newFullScreenWindow(); if(gdisFullScreenSupported()) gdsetFullScreenWindow(myWindow); else Systemoutprintln(Unsupportedfullscreen); } staticclassFullScreenWindowextendsJWindow{ publicFullScreenWindow(){ thisaddMouseListener(newMouseAdapter(){ publicvoidmousePressed(MouseEventevt){ quit(); } }); } publicvoidquit(){ thisdispose(); } publicvoidpaint(Graphicsg){ gsetFont(newFont(ArialFontBOLD)); gsetColor(ColorRED); gdrawString(这是全屏幕模式); } } } |