分享
 
 
 

Siemens Java开发初步

王朝java/jsp·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

一、安装开发工具

本文是介绍如何编写在Siemens 6688i上运行的Java程序,本文从一个工程tutorial开始,以实例讲述了编写方法。由于本人也是个初学者,还没有仔细看过Java的书,只是略有点C++基础,对Java的术语都不知道,有错误的地方还请大家指正,并且本文会不断更正、完善。

阅读本文前,请确认您是否具有一定的Java基础或C/C++基础,假如不是,请首先学习Java的基本语法。

本文的所有例子都是在Borland JBuilder 6 personal + Borland MobileSet 2.0 + Siemens Mobility Toolkit(SMTK)6688i v1.0 beta 7上运行通过的,另外还需要打包工具Jar。关于这四个工具的下载地点请去我的论坛查找。

开发工具的安装与设置

首先安装Borland JBuilder 6 personal,安装完成后初次运行需要注册,选择Have License Key,点Next>,选择Paste license key text,然后把下面这堆注册码复制进去,在确认一次协议后就OK了。

注册码如下:

%26%FFj%F4%00%00%023%DF%DD%23f

%BD%83%DF3%CD%02%1D%E0%D7%A1%1

4%C1%7E%28%A8%EA%C0x%DEw%3A%C3

%B2%ABX%92%02%14%81%8D%F4%0B%9

C%27y%90%DF%FE%7F%DF%23%7E%A7%

F2%E09%A1%00%7B%81%AA%9C%1A%B0

_%28%CB%E8%EBA%A1fN%F9%99%D9V%

87%01f%D8%8E%FA%3C%FC%1D%3E%A4

%BE%B5%0A%E7%0BG%E3%AE%AF%5D%A

A%5C%17%FD%EB%CAv%B2%09%16%E3%

CD%E0%0B%F1e%3E%CA%FA%CB%09%D5

7%3C%9C%F2%FEV%CF%0EV%8D%BC%CC

y%85My%F6%CB%C8D%F1%5E%29%DB%C

0%8A%17%E2K%22%F5%A9%80o%B1%20

%0C%D8%FD%B5%7C%ED%0D%7E%85%8A

%F0t%9A%0D%17%F1%96%95%0B%E2%1

D%1E%8E%9C%ECq%86I%20%CF%E0%F8

%7F%D2%02%7E%AC%90%80-%D5MM%F3

%E7%86%1D%B7%5CW%A0%E8%F7%3C%8

4%1F%0A%BF%A0%E2J%E0%16%16%D7%

93%E82%AAv%3B%89%B0%DA%11%AEmN

%FD%A1%B2I%B2%08%13%E5%AC%CF%1

6%BCt%1C%AA%A4%FF%7C%F8%24%05%

BB%D7%CD%5E%F1%7Ec%AC%EC%8B1%B

DdC%91%D7%DC%29%A7ei%DE%A3%F4%

2B%DD.O%ED%F3%8BT%E6e%24%D3%FC

%FD%60%D7c%3D%C9%CA%AB%0D%FBf6

%95%D8%D1%5B%C8T%19%ED%8A%B1%1

8%81%02U%8A%8C%92%20%95vi%B5%8

2%E7h%D1y%1A%C1%BC%88%26%FD_%0

5%B3%A5%DB%0B%8D%157%F9%FB%8CP

%FA%0Da%C8%99%96G%B5%02%3F%9C%

C9%9A%08%97oQ%A5%BC%92t%81.%05

%F7%A7%FF%18%BE_%22%A6%8D%EAK%

D6%06%3D%A5%D7%DCk%84o6%E4%E0%

C5D%FA%27%7D%B8%C0%AB%3E%83uV%

B8%F6%D2%2B%B1Hn%A6%F0%A70%FAF

%7E%AA%C6%DF%27%9D%0C%05%A0%97

%9E%3E%8BaX%D1%BB%AC%1B%82%7B%

25%CE%8D%A6n%FEIY%95%A6%F4%3E%

DDn-%EB%B5%869%CD%5Bo%DA%EE%A8

l%EDV%20%CD%E9%E1j%8F%5B%0B%82

%D4%B3t%A1%1EK%95%D7%AD%5B%FF%

18g%A1%F6%9B.%B6%7B3%E1%96%CF*

%F2%05v%A6%E1%8F%3C%A1%05%29%D

F%C4%D4p%B1o8%D3%D7%B4%12%97%0

5%0E%B2%D7%BCW%F0%17d%CD%90%E0

I%A3%00D%90%BD%C4L%B1ii%96%E1%

BD%3F%AB%28z%F5%D2%92%25%FF6H%

DB%E9%C9%1A%99%27

接下来安装Borland MobileSet 2.0,安装完成后初次运行JBuilder6也需要注册,选择Have License Key,点Next>,选择Paste license key text,然后把下面这堆注册码复制进去,在确认一次协议后就OK了。

注册码如下:

R%1B%ABN%00%00%02L%DF%DD%23f%B

D%83%DF3%CD%02%1D%E0%D7%A1%14%

C1%7E%28%A8%EA%C0x%DEw%3A%C3%B

2%ABX%92%02%14%81%8D%F4%0B%9C%

27y%90%DF%FE%7F%DF%23%7E%A7%F2

%E09%A1%00%7B%81%AA%9C%1A%B0_%

28%CB%E8%EBA%A1fN%F9%99%D9V%87

%01f%D8%8E%FA%3C%FC%1D%3E%A4%B

E%B5%0A%E7%0BG%E3%AE%AF%5D%AA%

5C%17%FD%EB%CAv%C1%1E%7D%90%C0

%99o%8F%0B1%C7%EA%AA%0B%C8F_%8

3%9E%EC*%BCp8%82%B1%DC%18%87P%

08%95%D4%A4V%8D-W%B5%CF%87%07%

83I%3F%84%CA%9F%03%A3%5C%7F%A6

%93%BA%1D%F3l%15%96%8A%80a%8A%

11%1D%9C%EB%EEc%E4u%04%FA%93%F

Cw%FC%21H%A2%F3%F8z%AC%11%7B%D

7%FD%96S%C36%25%9B%8A%95%1D%B2

%22D%A5%93%9A*%FA%09q%D7%CB%86

Y%E3%1Ah%C7%9C%9A%5C%B5%0B%27%

F8%D2%BB%7C%BDnB%83%B1%BD%3B%D

C%17n%F9%DD%ADw%D1g%1F%A6%DA%E

Fp%A4m%06%E2%F1%B2W%E8T%0D%B2%

B2%AC%29%D8%1F%7B%92%AE%9A%14%

C02l%DA%F6%A5W%BD0%5C%8B%8A%F0

v%87%15b%F1%87%81k%94%02t%80%D

5%E1%0C%C8kl%BA%A9%FE.%EB8L%80

%AD%8CI%8FMD%D0%C1%E5r%D7%27%7

B%AA%CA%A3B%F7M%1E%D4%BD%E7%2C

%8A0L%B2%AE%81%7E%88%7Bh%F1%8D

%AE%02%E8%3B%2C%89%82%89%5D%8E

II%BD%C2%EE%10%8D%3Do%E3%E8%FC

N%CE%17u%BA%9D%CAO%BFWf%F2%E0%

E5%7E%FC%02%5E%82%92%CB%13%ED8

D%C6%D2%9Bq%E2-k%98%C4%DAe%A2%

1CC%C1%A3%AEy%99%13%14%E5%8A%F

64%90%10U%8F%83%BA%25%C93%00%9

6%E2%C0g%9E%20B%FF%D6%F9%01%BE

%28c%EE%FC%D9e%81H%14%90%CE%D9

9%C3y%1A%EB%A1%91%1F%89%28y%90

%9B%AEz%9C%1A%05%9E%E5%C6B%948

7%FF%A6%E0%7E%87LP%F5%D3%A6%3B

%B1%0B6%DD%C5%A5%14%FBbF%96%EA

%9BG%84%19v%BA%F6%FF%5C%F7e%5B

%D1%D0%A3%1B%FBb%5C%F7%87%D7-%

F6%0B%7D%DC%87%D52%DAD%1B%FB%8

7%CBz%C1%2CI%C2%B8%E5%17%97T%1

1%86%AF%DCS%EF6%3D%C4%CC%F2%1B

%9E%25%15%F2%CB%D2%05%AAi%5E%D

2%C1%BA%05%865%7C%AD%91%C2%29%

A2q%3C%B5%F4%ADs%C3ys%D4%F9%F2

最后安装Siemens Mobility Toolkit(SMTK)6688i 1.0 beta8 或 SMTK 3118 1.0 beta8,安装过程中会自动识别JDK的路径为JBuilder6安装路径下的jdk1.3.1。

全部安装完成后还需要配置一下JBuilder6。打开JBuilder6,然后点菜单Tools->Configure JDKs,在JDK home path栏点Change,选择6688i SMTK安装的路径,要选到6688i_1b8或3118_1b8为止,确定后上面的Name栏会自动变成Siemens,然后点OK搞定。

二、第一个工程

新建一个工程

在Jbuilder6中先新建一个工程:点菜单File -> New Project,在对话框中输入工程名、路径等内容。请在这里输入Name:tutorial;Directory:D:mydocjavautorial(或你自己选择的路径),然后直接点Finish就可以了。

Java是基于类的,每个公共类都必须新建一个文件。

点菜单File -> New…,在对话框中双击Class,在Class name栏输入类名称TutorialMain,至于上面的Package用默认的就可以,下面的Base Class是定义基类,可以以后改。点OK就可以了。

用同样的方法建立类TutorialForm和TutorialCanvas。

这三个文件的内容分别是:

TutorialMain

package tutorial;

import javax.microedition.midlet.*;

import javax.microedition.lcdui.*;

public class TutorialMain extends MIDlet

{

protected static TutorialForm pStart;

protected static Display display;

public static void main(String args [])

{

TutorialMain app = new TutorialMain();

app.startApp();

}

public TutorialMain()

{

pStart = new TutorialForm();

}

protected void pauseApp()

{

}

protected void startApp()

{

display = Display.getDisplay(this);

pStart.activate(display, this);

}

public void destroyApp(boolean param)

{

display.setCurrent(null);

notifyDestroyed();

}

}

TutorialForm

package tutorial;

import javax.microedition.lcdui.*;

public class TutorialForm extends Form implements CommandListener

{

protected static final Command[] COMMANDS =

{

new Command("开始", Command.OK, 0),

new Command("退出", Command.STOP, 1),

};

protected static Display display;

protected static TutorialCanvas pGame = new TutorialCanvas();

protected static TutorialMain winMain;

public TutorialForm()

{

super("Java教程");

append("版本:0.1.0

网址:

hzfeng.yeah.net");

for (int i = 0; i < COMMANDS.length; i++)

addCommand(COMMANDS[i]);

}

public void activate(Display disp, TutorialMain tmain)

{

display = disp;

winMain = tmain;

display.setCurrent(this);

setCommandListener(this);

}

public void commandAction(Command cmd, Displayable obj)

{

if (cmd == COMMANDS[0])

{

pGame.activate(display, winMain);

}

else

winMain.destroyApp(true);

}

}

TutorialCanvas

package tutorial;

import javax.microedition.lcdui.*;

public class TutorialCanvas extends Canvas implements CommandListener

{

protected static final Command[] COMMANDS =

{

new Command("继续", Command.OK, 0),

new Command("退出", Command.STOP, 1),

};

protected static Display display;

protected static TutorialMain winMain;

protected Graphics g;

public TutorialCanvas()

{

for (int i = 0; i < COMMANDS.length; i++)

addCommand(COMMANDS[i]);

}

protected void paint(Graphics parag)

{

g = parag;

g.drawString("你好", 0, 0, Graphics.TOPGraphics.LEFT);

}

public void activate(Display disp, TutorialMain tmain)

{

display = disp;

winMain = tmain;

display.setCurrent(this);

setCommandListener(this);

}

public void commandAction(Command cmd, Displayable obj)

{

if (cmd == COMMANDS[1])

winMain.destroyApp(true);

}

}

这里先不对这些代码作解释,先演示一下怎样对工程进行编译和运行。

编译运行

点菜单Run -> Run Project,第一次运行会弹出对话框询问要执行的主类(Main Class),也就是从这个类开始执行,切换到MIDlet子项,点“…”浏览,展开tutorial,选中下面的TutorialMain,然后OK。

JBuilder会自动调用6688i的仿真程序对程序进行仿真。

每次运行前都会自动编译,假如有错误,会有出错显示。

打包执行

编译好的文件都放在工程目录下的classes里,里面有一个以Package名称命名的子目录,打包的时候要包括这个子目录。

由于打包程序Jar是以命令行方式运行的,所以通常做个bat文件打包会比较方便。可以先将jar.exe复制到classes目录里,然后在bat文件中写jar cf tutorial.jar tutorial,执行以下就搞定了。

下载到MMC卡上的时候,现在javajamgame下建立一个tutorial目录,然后将tutorial.jar复制到该目录下,另外还要将工程目录下jad目录中的TutorialMain.jad也复制到这个目录中。

现在可以执行一下试试看了。

示例说明

TutorialMain是起始类,由MIDlet继续而来,其中的public static void main(String args [])就像C语言里的main函数一样,是程序第一个执行的函数,这是52版开始要求的,52版以前可以不需要此函数。startApp里是开始运行程序所作的一些事,Display.getDisplay()是获取屏幕显示的对象,pStart.activate()见TutorialForm里的定义,其他的就没什么可说的了,依样画葫芦就可以了。

TutorialForm是由Form类继续而来,Form是一个窗体,有标题,可以显示文字也可以列出选项、设置按钮。implements CommandListener表示这个类还用到了CommandListener这个组件,这是一个监测按钮动作的组件。

super("Java教程")是调用Form的构造函数,里面的字符串就是窗口的标题。append()是在窗口上插入要现实的内容,不仅可以插入文字还可以插入图片等。for (int i = 0; i < COMMANDS.length; i++) addCommand(COMMANDS[i]); 是把上面定义的按钮数组Command[]添加到窗口上。

commandAction是按钮按下的响应函数,通过参数cmd可以判定出哪个按钮被按下了,从而可以采取相应的措施。

activate函数是自定义用来启用TutorialForm类的。包括display.setCurrent(this)将屏幕输出联系到自己身上,setCommandListener(this)开始对按钮动作进行监测。而winMain变量的设置是为了调用TutorialMain的destroyApp函数以便退出程序。

TutorialCanvas是由Canvas类继续而来,同时也需要监测按钮动作。Canvas是一个画板,可以在上面画图、画字符串等等。

paint函数是当Canvas类显示时调用的绘图函数,g.drawString("你好", 0, 0, Graphics.TOPGraphics.LEFT)是以坐标(0,0)作为左上角画了两个字“你好”。其他的函数与TutorialForm类似。

三、几个常用类

常用类简介

MIDlet类

老实说我对这个类的理解也不深刻,也就是照着其他的程序依样画葫芦,我认为这是一个起始类,程序执行总是从这个类开始。必须要有的事件函数是startApp、pauseApp、destroyApp,顾名思义,就是起始、暂停、终止的时候起作用。

Form类

Form是一个窗体,有标题,可以显示文字也可以列出选项、设置按钮。

Canvas类

Canvas是一个画板,可以在上面画图、画字符串等等。必须要有的事件函数是paint,在显示的时候调用。

Graphics类

Graphics是一个画图的类,有画框、画线、画块、画圆、画字符串等功能函数。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有