如何把 java applet 转化为java application

转载自:http://blog.csdn.net/songhhwd01/article/details/4248491


前几天冯姐和我说,由于工作需要,要几个java 的小游戏程序,我就上网上google 了一下,发现网上是由很多的java小游戏程序,但写的好的,运行效果不错的基本上的都是java applet,必须得借助浏览器来运行,很是不方便,当时我就想,给它们改成java application,那不就方便多了!


  想法出来以后,就开始想想这个方法可不可行,当时我觉得肯定可行,因为不管是java applet,还是java application,最后无非都是编译成.class文件,前者是被浏览器内嵌执行,后者是直接在虚拟机上执行,况且我以前做过一些j2me的东西,当时用J2se编译出来的.class问价都能在j2me的编译器上执行,这个肯定也能实现。

   想法也可行,下一步技术着手开始实现了,这里有个建议,就是学程序的时候,一定要学得深一些,就是要知其所以然,要是对java applet 和 java application的运行机制都足够深的话,其实转化起来也不难,程序无非都有一个入口函数,顺着入口函数顺藤摸瓜,就会对程序的运行流程非常清晰,java applet的入口函数是init(),java application的是main(),那直接在java applet 里添加一个main()函数,调用init()不就完了吗,至于init()方法的流程是什么样的,我们也无需知道,这就和做车是一样一样的,举个例子,加入你想从北京到南京,但是你不知道路怎么走,你只知道从北京到天津,天津到南京怎么走,这时候该怎么办呢?上车呗,上从北京到天津的车,到了天津在坐天津到南京的车不就完了吗!就是转了一个弯。所以我这么改,
   
   在applet文件里添加:
   public static void main(String[] args){
     init();
}

对吗?
肯定不对,static 方法怎么可以调用非static 方法呢,接着又会想,那我New 一个实例以后再调用不就完了吗,假如applet文件名是Pintu.java,就这么写:
 public static void main(String[] args){
     Pintu pintu = new Pintu();
     pintu.init();
}


肯定也不对,
好了不卖关子了,直接说原理:
applet显示的时候必须要有一个背景(专业点的话可能是容器),在用浏览器执行的时候,它是显示在浏览器上的,当你把applet 转化为application的时候,浏览器这个容器没了,你必须给它再准备个容器,这里可以用JFrame当容器来显示applet,代码如下:
public static void main(String[] args){
 pintu applet = new pintu();
   JFrame frame = new JFrame("PinTu");
   frame.addWindowListener(new WindowAdapter() {
     public void windowClosing(WindowEvent e){
       System.exit(0);
     }
   });
   frame.getContentPane().add(
     applet, BorderLayout.CENTER);
   frame.setSize(650,520);
   applet.init();
   applet.start();
   frame.setVisible(true);
   
}

以前的applet文件里的其他内容一点也不用改,如果你用的是MyEclipse的集成开发环境,这时候该文件既可以当applet 运行,又可以当application运行,炫吧!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值