Java Swing编程:Applet和JApplet
2023-03-14 22:58:07 时间
虽然现在已经不是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);
- }
- }
大家可以把玩下,其实还是挺好玩的。
原文链接:http://blog.csdn.net/terryzero/article/details/3792261
【编辑推荐】
相关文章
- Calisti
- Gin 框架: RPC 错误码设计
- 聊聊GC是如何快速枚举根节点的
- 2021年双11云服务器优惠对比
- 免疫检查点 PD-1 与中枢神经系统(CNS)的生理学关系 | MedChemExpress
- TLR8小分子抑制剂或将治愈自身免疫病 | MedChemExpress
- 一文弄懂三色标记算法
- 双11云服务器PK:阿里云和腾讯云谁更优惠
- 垃圾收集器必问系列—G1
- 2021年双十一云服务器优惠盘点
- SAP QM 从检验批提取样品
- 双十一云服务器续费
- web前端技能方法总结(css、js、jquery、html)(28)
- 2023年科技行业的九大预测,核心技术变得越来越 " 实 "
- 《流浪地球2》的冷思考:如何消除信息孤岛
- 为什么众多创新企业钟情于.cloud域名?
- Gin 框架:添加 Prometheus 监控
- 1分钟解读什么是实时渲染
- 创新企业凭借.cloud域名抢占先机
- 不背锅运维:耗时1周整理:分享K8S Pod知识点,带你一文打尽