2007-10-18 11:20 |
Swing小应用程序/应用程序组合
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Test extends JApplet {
public void init() {
Container contentPane = getContentPane();
/*原文
Icon icon = new ImageIcon("swing.gif");
JLabel label = new JLabel(icon);
*/
//原文如不修改,不能正常显示图标
//修改后--------
java.net.URL codebase=getClass().getResource("swing.gif");
JLabel label = new JLabel(new ImageIcon(codebase));
//----------修改后的程序有个毛病,既作为applet使用时,不能刷新,一旦刷新图就没了。
contentPane.setLayout(new FlowLayout());
contentPane.add(label);
//contentPane.add(label);
}
public static void main(String args[]) {
final JFrame f = new JFrame();
JApplet applet = new Test();
applet.init();
f.setContentPane(applet.getContentPane());
f.setBounds(100,100,308,199);
f.setTitle("An Application");
f.setVisible(true);
f.setDefaultCloseOperation(
WindowConstants.DISPOSE_ON_CLOSE);
f.addWindowListener(new WindowAdapter() {
public void windowClosed(WindowEvent e) {
System.exit(0);
}
});
}
}
从本质上讲,这种技术会产生共享一个内容窗格的应用程序和小应用程序。当例中的代码被编译后,它可以既作为小应用程序运行又可以作为应用程序运行。
应该注意的是,作为应用程序/小应用程序组合实现的应用程序,在使用main方法创建的小应用程序实例时必须非常小心。因为浏览器或小应用程序阅读器不能把这种小应用程序实例化,所以这种小应用程序是不完善的(从技术上说,它没有小应用程序的相关内容)。因此,这种小应用程序不能使用,例如,用Applet.getImage方法来获取一幅图像。实际应用中,也没有那么多限制,因为应用程序除借用小应用程序的内容窗格外不需要使用小应用程序。例如,应用程序通常使用AWT工具包来获取图像,因此,不需要使用Applet.getImage方法。
回复 更多评论