摘要:本文包括一个简单的Java程序的源代码,该程序在全屏窗口的中心显示图像(本地文件或者从http://URL下载),其中使用了AWT Toolkit装载图像,Swing JFrame显示图像。 兼容性:Sun Java 1.4或者更高版本 本程序由一个从标准Swing JFrame类扩展而来的Test1组成。代码的大部分在类的构造方法中:两个简单的事件listener(鼠标listener用于退出程序,窗口listener用于窗口在关闭时终止程序运行),全屏模式切换代码以及图像数据装载。 全屏模式切换代码很简单:this.setUndecorated(true);this.setVisible(true);GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().setFullScreenWindow(this); 我们移除窗口的边框和菜单(setUndecorated method),确信窗口可见(setVisible),然后调用setFullScreenWindow。你可以在sun.com了解更多高级的全屏API。 程序装载和显示由命令行参数指定的图像。如果参数由http://开头,就创建一个URL对象,否则参数就作为文件名进行处理,并直接传递给AWT Toolkit的getImage方法。 Toolkit.getDefaultToolkit().getImage()方法可以装载GIF、JPEG和PNG文件。它接收字符串(文件名)或者URL对象作为其参数。 Java源代码:import java.awt.Graphics; import java.awt.GraphicsEnvironment; import java.awt.Image; import java.awt.Toolkit; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.net.MalformedURLException; import java.net.URL; import javax.swing.JFrame; public class Test1 extends JFrame { // this line is needed to avoid serialization warnings private static final long serialVersionUID = 1L; Image screenImage; // downloaded image int w, h; // Display height and width // Program entry public static void main(String[] args) throws Exception { if (args.length < 1) // by default program will load AnyExample logo { new Test1("http://www.anyexample.com/i/logo.gif"); } else { new Test1(args[0]); // or first command-line argument } } // Class constructor Test1(String source) throws MalformedURLException { // Exiting program on window close addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); // Exitig program on mouse click addMouseListener(new MouseListener() { public void mouseClicked(MouseEvent e) { System.exit(0); } public void mousePressed(MouseEvent e) {} public void mouseReleased(MouseEvent e) {} public void mouseEntered(MouseEvent e) {} public void mouseExited(MouseEvent e) {} }); // remove window frame this.setUndecorated(true); // window should be visible this.setVisible(true); // switching to fullscreen mode GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().setFullScreenWindow(this); // getting display resolution: width and height w = this.getWidth(); h = this.getHeight(); System.out.println("Display resolution: " + String.valueOf(w) + "x" + String.valueOf(h)); // loading image if (source.startsWith("http://")) // http:// URL was specified { screenImage = Toolkit.getDefaultToolkit().getImage(new URL(source)); } else { screenImage = Toolkit.getDefaultToolkit().getImage(source); // otherwise - file } } public void paint (Graphics g) { if (screenImage != null) // if screenImage is not null (image loaded and ready) { g.drawImage(screenImage, // draw it w/2 - screenImage.getWidth(this) / 2, // at the center h/2 - screenImage.getHeight(this) / 2, // of screen this); // to draw image at the center of screen // we calculate X position as a half of screen width minus half of image width // Y position as a half of screen height minus half of image height } } } 注意:如果图像未成功装载,本程序就没有输出。