Java Swing编程:Applet和JApplet
虽然现在已经不是Applet的时代了,applet过于强大导致客户端的不安全性,还要求客户端安装JAVA运行环境,flash已经成为web应用的主流,现在每个游览器基本都安装了flash播放器,但Applet可是Java语言的开端。
Applet和一般的java程序最大区别就是没有main函数入口,他是通过继承Applet类。
这个类有5个特殊方法
init:初始化
start:启动时执行
stop:停止
destroy:于init相对
paint:绘制界面
下面看具体代码,eg
public class HelloApplet extends JApplet  
{  
 
 
    //初始化Applet的方法  
    public void init()  
    {  
        setLayout(new FlowLayout());  
        add(new JButton("XXX"));  
        add(new JButton("YYY"));  
    }  
    //启动Applet的方法  
    public void start()  
    {  
        System.out.println("start方法");  
    }  
    //绘制Applet界面的方法  
    public void paint(Graphics g)  
    {  
        super.paint(g);  
        System.out.println("paint方法");  
        g.drawLine(3 , 3 , 200 , 300);  
    }  
    //停止Applet的方法  
    public void stop()  
    {  
        System.out.println("stop方法");  
    }  
    //销毁Applet的方法  
    public void destroy()  
    {  
        System.out.println("destroy方法");  
    }  
    public static void main(String[] args)  
    {  
        JFrame jf = new JFrame();  
        JApplet panel = new HelloApplet();  
        panel.setPreferredSize(new Dimension(300, 400));  
        //显式调用HelloApplet对象的init、start方法  
        panel.init();  
        panel.start();  
        jf.add(panel);  
        jf.pack();  
        jf.setVisible(true);  
    }  
} 其中我们把Applet当成容器来使用,把他加入JFrame,用main作为入口运行。
放到网页中就不需要main,但要通过网页掉用
调用方法如下
<applet codebase="." code="HelloApplet" width=400 height=300 name="HelloApplet"> <param name=name value="HelloApplet"> </applet>
这个文件一般利用JDK目录下的bin中的HtmlConverter来转换,手动写对不同游览器还是挺吃力的。
下面再看个Applet动画,eg
public class ScApplet extends Applet  
{  
    final String testStr = "Java真好玩,学习很有趣!";  
    //用于保存字符串下一次出现的座标  
    private int nextX;  
    private int nextY;  
    private Color nextColor;  
    private Font nextFont;  
    java.util.Random rand = new java.util.Random(System.currentTimeMillis());  
    public void init()  
    {  
        Timer timer = new Timer(200 , new ActionListener()  
        {  
            public void actionPerformed(ActionEvent event)  
            {  
                //随机生成下一次座标、颜色、字体大小  
                nextX = rand.nextInt(400);  
                nextY = rand.nextInt(300);  
                nextColor = new Color(rand.nextInt(255) , rand.nextInt(255) , rand.nextInt(255));  
                nextFont = new Font("Times" , Font.BOLD , rand.nextInt(60));  
                //强制重绘  
                repaint();  
            }  
        });  
        timer.start();  
    }  
    //绘制Applet界面的方法  
    public void paint(Graphics g)  
    {  
        g.setColor(nextColor);  
        g.setFont(nextFont);  
        g.drawString(testStr, nextX, nextY);  
    }  
 
    public static void main(String[] args)  
    {  
        JFrame jf = new JFrame();  
        ScApplet panel = new ScApplet();  
        panel.setPreferredSize(new Dimension(400, 300));  
        panel.init();  
        panel.start();  
        jf.add(panel);  
        jf.pack();  
        jf.setVisible(true);  
    }  
}  相关推荐
  Pineapple    2014-05-29  
   ORACLEFANS    2014-05-28  
   hyzhym    2014-05-28  
   Pineapple    2020-05-28  
   hyzhym    2020-03-08  
   Pineapple    2020-03-04  
   hyzhym    2014-06-03  
   不会飞的超人先生    2019-11-06  
   STPace    2014-07-04  
   菜鸟Davinci    2012-01-14  
   XxZproject    2016-11-16  
   技术服务生活    2016-11-15  
   jandawn    2010-11-18  
   fuhai    2012-01-09  
   jandawn    2012-02-29  
   BullJordan    2015-02-03  
   devchai    2014-06-03