Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 330|回复: 0

[J2ME学习]J2me手机程序开发起步

[复制链接]
  • TA的每日心情
    开心
    2021-3-12 23:18
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2014-10-11 03:00:34 | 显示全部楼层 |阅读模式
    J2me手机程序开发起步  开发j2me手机程序的工具初学者选用Sun java Wireless Toolkit(WTK)是个不错的选择,下面用一个简单的J2ME手机程序,介绍WTK开发J2ME手机程序的过程。  1. 工具  J2SE 5.0
          下载地址    Sun Java Wireless Toolkit 2.2 (WTK)
          下载地址:http://java.sun.com/javame/downloads/index.jsp     UltraEdit

           用来编辑j2me源程序,如果不想用它,其它的文本编辑器都行,如windows 中的写字板。 .2. 开发环境配置

            先安装J2SE,我的目录是:c:jdk1.5,然后安装Sun Java Wireless Toolkit 2.2,
            我的目录:c:WTK2.2。配置java环境就不多说了。
                                                                                                                                  
    3.WTK的目录结构

            安装完成后我们会在安装目录下看到一些文件和文件夹,主要的 l      apps: 自带的demo程序,也是存放我们的项目文件的地方,每一个项目都会自动建立一子目录来管理与项目相关的文件。现有的项目也可以直接复制到该目录下运行和调试。
      l         bin: J2ME开发工具执行文件
      l         docs: 存放一些帮助文档.
      l         lib:  J2ME 程序库,Jar 包与控制文件
      l         wtklib: WTK主程序与模拟器外观
      l         index.HTML: 是一个关于j2me的参考手册.

      4.启动界面 我们在开始――〉所有程序中可以找到刚刚安装的(WTK),如图

      
      
    1.   [img]http://img.javaxxz.com/2014/10/11/030011234.jpg[/img]
    2.    KToolbar是WTK最常使用的工具,它可以用来建立工程,修改工程,以及启动模拟器来调试执行我们所编写的程序。如图:

    3. [img]http://img.javaxxz.com/2014/10/11/030011406.jpg[/img]
    4.                               图1
    5. 5.第一个J2ME程序
    6.    我们运行Wireless Toolkit开发工具.进入Wireless Toolket的界面,如上图所示。
    7. 首先,我们点”Fileà New Project”或者直接点”New Project”按钮,建立一个新的项目,如图所示:
    8. [img]http://img.javaxxz.com/2014/10/11/030011640.jpg[/img]
    9.                        图2
    复制代码
         在里面填入项目名和MIDlet的主类名,点”Create Project”按钮,出现了下图所示的界面:注意了,这里项目名可以自己随意起,但是类名要和我们一会儿写代码时的类名保持一致。

      

                              图(3)
      
    该界面用于配置MIDP应用程序的一些属性值,取默认值,点”OK”。这样进入下图:

      

                                              图4       这里提示你应该将java源文件放入:c:WTK22appsHellosrc下面。你进入”WTK”安装目录中的apps文件夹,可以看到多了一个Hello文件夹,它就是你所建立的项目文件目录。

         WTK 产生项目后,不同类型的资源有着相对固定的存放位置。Java 源文件被放在apps目录下Hellosrc 下,相关程序资源文件(图片,音频)放在Hello
    es 下,应用程序库文件放在Hellolib 下,这在WTK 中是必须注意的,即便是相对路径,也必须是在该目录下建立。

          项目创建成功后,我们来创建一个MIDlet 文件,MIDlet 是J2ME 项目文件的入口文件,也是必须的。在Hellosrc 目录下创建Hello.java,采用默认包,注意,此时创建的java程序必须是与我们在创建项目时键入的MIDlet 类名一致。       一个MIDlet在生命周期中有三个状态Active(激活),Paused(挂起)和Destroyed(销毁)。这些状态直接对应三个方法startApp(),pauseApp(),destroyApp()。一个典型的MIDlet,大多数处于Active或Paused状态,当MIDlet关闭时进入Destroyed状态,直到完全从内存中移出。我们自己的MIDlet程序要覆盖(override)相关的生命周期方法。例如,当一个游戏MIDlet启动时,你可能要创建对象或装载数据;当MIDlet暂停时,你可能应当关闭网络连接并暂停音乐;最后MIDlet销毁时要释放分配的资源,同时保存相关的游戏数据。

    下面是我们简单的MIDlet:
    1. import javax.microedition.midlet.*;
    2. import javax.microedition.lcdui.*;
    3. public class Hello extends MIDlet implements CommandListener {//要继承MIDlet类
    4.   private SCanvas canvas;//绘图的画布,绘图都在这个上进行。
    5.   private Display display;//屏幕管理器
    6.   
    7.   public void startApp() {//MIDlet类中定义的方法之一,启动MIDlet
    8.     if (canvas == null) {
    9.        display=Display.getDisplay(this);//得到这个MIDlet的屏幕管理器
    10.       canvas = new SCanvas();
    11.       Command exitCommand = new Command("Exit", Command.EXIT, 0);
    12.       canvas.addCommand(exitCommand);
    13.       canvas.setCommandListener(this);
    14.     }
    15.    
    16.     display.setCurrent(canvas);//将当前MIDlet的屏幕设为canvas
    17.     // Start up the canvas
    18.     canvas.start();
    19.   }
    20.   public void pauseApp() {}//MIDlet类中定义的方法之一,暂停MIDlet,这里什么都不做。
    21.   
    22.   public void destroyApp(boolean unconditional) {}//MIDlet类中定义的方法之一,销毁MIDlet。这里什么都不做。
    23.   
    24.   public void commandAction(Command c, Displayable s) {
    25.     if (c.getCommandType() == Command.EXIT) {
    26.       destroyApp(true);
    27.       notifyDestroyed();
    28.     }
    29.   }
    30. }
    31. class SCanvas extends Canvas {

    32.   
    33.   public SCanvas() {
    34.     super();
    35.    }
    36.   void start() {
    37.      repaint();
    38.   }
    39.   public void paint(Graphics g) {
    40.     // 清屏
    41.     g.setColor(0, 0, 0);        // black
    42.     g.fillRect(0, 0, getWidth(), getHeight());
    43.     g.setColor(255, 255, 255);  // white
    44.     int y = 0;
    45.     String screenSize = "屏幕大小: " + Integer.toString(getWidth()) + " x " +Integer.toString(getHeight());
    46.     g.drawString(screenSize, 0, y, Graphics.TOP | Graphics.LEFT);

    47.     // 总内存和自由内存数
    48.     Runtime runtime = Runtime.getRuntime();
    49.     y += Font.getDefaultFont().getHeight();
    50.     String totalMem = "总的内存: " + Long.toString(runtime.totalMemory() / 1024) + "KB";
    51.     g.drawString(totalMem, 0, y, Graphics.TOP | Graphics.LEFT);
    52.     y += Font.getDefaultFont().getHeight();
    53.     String freeMem = "可用内存数: " + Long.toString(runtime.freeMemory() / 1024) + "KB";
    54.     g.drawString(freeMem, 0, y, Graphics.TOP | Graphics.LEFT);
    55.   }
    56. }
    复制代码
    将上面的程序以”Hello.java”命令保存在我们刚才建的项目中的src目录底下,这时我们点图(4)所示界面中的”Build”按钮,”Wireless Toolkit”将自动为我们编译源代码,编译成功后,生成的相应的文件都会放到项目文件夹Hello下相应的目录中,我们就可以点击图(4)所示的”Run”按钮启动程序,再点击手机上launch按钮运行程序了,如图(5)所示:

          
          
                    图(5)
      非常象写Applet程序,试着写几个试试。
      
       
         
         
          
          

            
          

            
          
         
       
      
      


    源码下载:http://203.93.208.26/kj/cwb/dir7/Hello645.zip
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2025-2-26 13:45 , Processed in 0.385230 second(s), 36 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表