虽然现在已经不是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);
}
}
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.
- 31.
- 32.
- 33.
- 34.
- 35.
- 36.
- 37.
- 38.
- 39.
- 40.
- 41.
- 42.
- 43.
- 44.
- 45.
- 46.
其中我们把Applet当成容器来使用,把他加入JFrame,用main作为入口运行。
放到网页中就不需要main,但要通过网页掉用
调用方法如下
<applet codebase="." code="HelloApplet" width=400 height=300 name="HelloApplet">
<param name=name value="HelloApplet">
</applet>
- 1.
- 2.
- 3.
这个文件一般利用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);
}
}
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.
- 31.
- 32.
- 33.
- 34.
- 35.
- 36.
- 37.
- 38.
- 39.
- 40.
- 41.
- 42.
- 43.
- 44.
- 45.
- 46.
大家可以把玩下,其实还是挺好玩的。
原文链接:http://blog.csdn.net/terryzero/article/details/3792261
【编辑推荐】