Java Swing编程:Applet和JApplet

开发 后端
虽然现在已经不是Applet的时代了,applet过于强大导致客户端的不安全性,还要求客户端安装JAVA运行环境,flash已经成为web应用的主流,现在每个游览器基本都安装了flash播放器,但Applet可是Java语言的开端。

虽然现在已经不是Applet的时代了,applet过于强大导致客户端的不安全性,还要求客户端安装JAVA运行环境,flash已经成为web应用的主流,现在每个游览器基本都安装了flash播放器,但Applet可是Java语言的开端。

Applet和一般的java程序最大区别就是没有main函数入口,他是通过继承Applet类。

这个类有5个特殊方法

init:初始化

start:启动时执行

stop:停止

destroy:于init相对

paint:绘制界面

下面看具体代码,eg

  1. public class HelloApplet extends JApplet  
  2. {  
  3.  
  4.  
  5.     //初始化Applet的方法  
  6.     public void init()  
  7.     {  
  8.         setLayout(new FlowLayout());  
  9.         add(new JButton("XXX"));  
  10.         add(new JButton("YYY"));  
  11.     }  
  12.     //启动Applet的方法  
  13.     public void start()  
  14.     {  
  15.         System.out.println("start方法");  
  16.     }  
  17.     //绘制Applet界面的方法  
  18.     public void paint(Graphics g)  
  19.     {  
  20.         super.paint(g);  
  21.         System.out.println("paint方法");  
  22.         g.drawLine(3 , 3 , 200 , 300);  
  23.     }  
  24.     //停止Applet的方法  
  25.     public void stop()  
  26.     {  
  27.         System.out.println("stop方法");  
  28.     }  
  29.     //销毁Applet的方法  
  30.     public void destroy()  
  31.     {  
  32.         System.out.println("destroy方法");  
  33.     }  
  34.     public static void main(String[] args)  
  35.     {  
  36.         JFrame jf = new JFrame();  
  37.         JApplet panel = new HelloApplet();  
  38.         panel.setPreferredSize(new Dimension(300400));  
  39.         //显式调用HelloApplet对象的init、start方法  
  40.         panel.init();  
  41.         panel.start();  
  42.         jf.add(panel);  
  43.         jf.pack();  
  44.         jf.setVisible(true);  
  45.     }  

其中我们把Applet当成容器来使用,把他加入JFrame,用main作为入口运行。

放到网页中就不需要main,但要通过网页掉用

调用方法如下

  1. <applet codebase="." code="HelloApplet" width=400 height=300 name="HelloApplet">  
  2. <param name=name value="HelloApplet">  
  3. </applet> 

这个文件一般利用JDK目录下的bin中的HtmlConverter来转换,手动写对不同游览器还是挺吃力的。

下面再看个Applet动画,eg

  1. public class ScApplet extends Applet  
  2. {  
  3.     final String testStr = "Java真好玩,学习很有趣!";  
  4.     //用于保存字符串下一次出现的座标  
  5.     private int nextX;  
  6.     private int nextY;  
  7.     private Color nextColor;  
  8.     private Font nextFont;  
  9.     java.util.Random rand = new java.util.Random(System.currentTimeMillis());  
  10.     public void init()  
  11.     {  
  12.         Timer timer = new Timer(200 , new ActionListener()  
  13.         {  
  14.             public void actionPerformed(ActionEvent event)  
  15.             {  
  16.                 //随机生成下一次座标、颜色、字体大小  
  17.                 nextX = rand.nextInt(400);  
  18.                 nextY = rand.nextInt(300);  
  19.                 nextColor = new Color(rand.nextInt(255) , rand.nextInt(255) , rand.nextInt(255));  
  20.                 nextFont = new Font("Times" , Font.BOLD , rand.nextInt(60));  
  21.                 //强制重绘  
  22.                 repaint();  
  23.             }  
  24.         });  
  25.         timer.start();  
  26.     }  
  27.     //绘制Applet界面的方法  
  28.     public void paint(Graphics g)  
  29.     {  
  30.         g.setColor(nextColor);  
  31.         g.setFont(nextFont);  
  32.         g.drawString(testStr, nextX, nextY);  
  33.     }  
  34.  
  35.     public static void main(String[] args)  
  36.     {  
  37.         JFrame jf = new JFrame();  
  38.         ScApplet panel = new ScApplet();  
  39.         panel.setPreferredSize(new Dimension(400300));  
  40.         panel.init();  
  41.         panel.start();  
  42.         jf.add(panel);  
  43.         jf.pack();  
  44.         jf.setVisible(true);  
  45.     }  

大家可以把玩下,其实还是挺好玩的。

原文链接:http://blog.csdn.net/terryzero/article/details/3792261

【编辑推荐】

  1. Java Swing编程:拖放功能
  2. Java Swing编程:特殊容器
  3. Java Swing编程:基本组件
  4. Java Swing用户界面设计:序
  5. 用Swing制作精美的图层叠加图
责任编辑:林师授 来源: terryzero的博客
相关推荐

2009-07-15 10:14:14

JApplet和JFrSwing

2012-01-17 14:09:54

JavaSwing

2012-01-17 13:41:34

JavaSwing

2012-01-17 14:05:29

JavaSwing

2012-01-17 13:58:17

JavaSwing

2012-01-17 13:46:55

JavaSwing

2012-01-17 13:16:34

JavaSwing

2012-01-17 14:01:33

JavaSwing

2009-07-16 16:46:39

Swing窗体

2009-07-08 18:21:27

2009-07-08 18:16:02

Applet和Serv

2011-07-04 16:04:20

Applet

2010-09-17 10:16:26

Java Applet

2009-06-11 08:59:35

2009-07-15 15:35:59

Swing程序Swing性能

2009-07-09 10:05:55

2010-09-17 10:41:45

Java Applet

2012-03-28 13:11:35

JavaEclipse

2009-07-07 17:23:08

Java Servle

2009-06-09 16:14:47

Java swing组件串行化
点赞
收藏

51CTO技术栈公众号