JavaSwing编程:Applet和JApplet

虽然现在已经不是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(300, 400));  
  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.  
  2.  
  3.  

这个文件一般利用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(400, 300));  
  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

文章标题:JavaSwing编程:Applet和JApplet
文章位置:http://www.shufengxianlan.com/qtweb/news5/358905.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联