添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
注册/登录

Swing全屏幕模式

开发 后端
本文介绍Swing全屏幕模式,如果你有兴趣写一个像ACDSee这样的软件,使用Swing全屏幕模式可以让用户看到更大的图片画面。

也许用到的机会很少,但JDK还是为我们提供了这个的功能。像许多软件中的打印预览功能,还有某些文本编辑器中为了获得更大的编辑画面,也用到了Swing全屏幕模式,如果你有兴趣写一个像ACDSee这样的软件,使用Swing全屏幕模式可以让用户看到更大的图片画面。

如何使用Swing全屏幕模式?

关键是java.awt.*里面的两个与显示设备有关的类:GraphicsEnvironment和GraphicsDevice。

GraphicsEnvironment为Java应用程序提供了特定平台的 GraphicsDevice对象和 Font 对象集合。这些GraphicsDevice可以是各种本机和远端机器的资源,如屏幕、打印机或者是Image Buffer,甚至是Graphics2D绘图方法的目标对象。

而GraphicsDevice就是指特定的图形环境了,如屏幕和打印设备等。这样,我们就可以用GraphicsDevice来操纵屏幕了。GraphicsDevice提供的setFullScreenWindow()方法就是设置全屏幕用的。

由于GraphicsEnvironment的构造器是受保护的(protected),我们不能直接构造一个GraphicsEnvironment 对象来获得GraphicsDevice对象。幸好它提供了getLocalGraphicsEnvironment()方法,用来获得一个 GraphicsEnvironment实例:

GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();

有了GraphicsEnvironment可以调用getDefaultScreenDevice方法获得当前的Swing全屏幕模式设备了:

GraphicsDevice gd = ge.getDefaultScreenDevice();

自己动手体验一下

有了上面的简介,写一个实例来体验一下吧:

  1. importjava.awt.Color;  
  2. importjava.awt.Font;  
  3. importjava.awt.Graphics;  
  4. importjava.awt.GraphicsDevice;  
  5. importjava.awt.GraphicsEnvironment;  
  6. importjava.awt.event.MouseAdapter;  
  7. importjava.awt.event.MouseEvent;  
  8. importjavax.swing.JWindow;  
  9. publicclassFullScreenTest{  
  10. publicstaticvoidmain(String[]args){  
  11. GraphicsEnvironmentGraphicsEnvironmentge=  
  12. GraphicsEnvironment.getLocalGraphicsEnvironment();  
  13. GraphicsDevicegd=ge.getDefaultScreenDevice();  
  14. FullScreenWindowmyWindow=newFullScreenWindow();  
  15. if(gd.isFullScreenSupported())  
  16. gd.setFullScreenWindow(myWindow);  
  17. else  
  18. System.out.println("Unsupportedfullscreen.");  
  19. }  
  20. staticclassFullScreenWindowextendsJWindow{  
  21. publicFullScreenWindow(){  
  22. this.addMouseListener(newMouseAdapter(){  
  23. publicvoidmousePressed(MouseEventevt){  
  24. quit();  
  25. }  
  26. });  
  27. }  
  28. publicvoidquit(){  
  29. this.dispose();  
  30. }  
  31. publicvoidpaint(Graphicsg){  
  32. g.setFont(newFont("Arial",Font.BOLD,30));  
  33. g.setColor(Color.RED);  
  34. g.drawString("这是全屏幕模式",100,100);  
  35. }  
  36. }  

【编辑推荐】

  • 在表格中Swing增加列表框
  • 浅谈Swing控件JList
  • 概述Swing组件与外部线程
  • Java Swing做什么好
  • Swing文件选择器的制作
  • 责任编辑:佚名 博客园
    点赞
    收藏