也许用到的时机很少,但JDK还是为我们供给了这个的功效。像许多软件中的打印预览功效,还有某些文本编辑 器中为了获得更大的编辑 画面,也用到了Swing全屏幕模式,如果你有兴趣 写一个像ACDSee这样的软件,应用 Swing全屏幕模式可以让用户看到更大的图片画面。
如何应用 Swing全屏幕模式?
要害是java.awt.*里面的两个与显示设备 有关的类:GraphicsEnvironment和GraphicsDevice。
GraphicsEnvironment为利用程序供给了特定平台的 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.}
37.}
|