您的位置:首页 >> 编程开发 >> Java >> J2ME >> 正文
J2ME RSS
 

手机Java小程序DIY

http://www.rdxx.com 03年06月30日 12:12 Yesky 我要投稿

关键词: 小程序 , 手机 , Java , DIY , 程序


  现在市面上有很多手机都有了Java功能,如西门子的6688i、6618摩托罗拉的388、T720诺其亚的7210、7650等等,我们可以从网上或通过数据线下载好多有趣的Java小程到手机里,如各种小游戏、小工具软件,扩展手机的功能。那么,我们编程爱好者能不能自己动手编手机Java小程序呢?当然可以了!这样我们既练习了编程,又节省了RMB呢!真是一举两得!因为在网上下载Java小程序是收费的。

  要想编写手机Java小程序,您需要具有一定的Java基础或C/C++基础,如果不是,请首先学习Java的基本语法。如果你是C/C++的高手,就可以轻松地DIY你想要的Java小程序了!

  一、安装开发工具

  目前,各大手机厂商都已发布各自的Java小程序开发包,我们到相关的站点都可找到。本文以西门子6688i为例进行介绍,其它厂商和型号的手机编程与其大同小异,只需安装不同的开发包即可。西门子6688i的Java小程序开发环境为:Borland JBuilder 7 personal + Borland MobileSet 3.01 + Siemens Mobility Toolkit(SMTK)6688i v1.0 beta 7。关于这三个工具可到http://www.cnjm.net下载。

  开发工具的安装与设置

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

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

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

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

  二、创建工程

  启动Borland JBuilder 7 personal,新建一个工程"car",本例程编译执得后是一辆赛车在手机屏幕飞驶而过,带背景音乐背景灯可一亮一灭的而且还有振动呢!

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



  点击菜单File -> New,在对话框中Micro属性页中的MIDIet,点OK(如图2),弹出MIDIet向导对话框,在对话框中输入包名、类名。请在这里输入Package:car;Class:car,然后点Next。 在下一对话框中输入类名,

Class:carscreen;Displayable type:javax.microeditoion.icdui.Canvas,其它用默认即可,然后点 Next,在最后一对话框中直接点Finish就可以了。


图2

  这时我们发现,Borland JBuilder 7 personal已把程序的框架帮我们写好了!剩下的工作就是加入我们自己要写的代码了。



  三、编写程序代码

  Java是基于类的,每个公共类都必须有一个文件相对应。在Borland JBuilder 7 personal视图左边的Project窗口中,我们可看到已经建好了两个文件:car.java和carscreen.java,前者为程序的起始类文件,后者为显示类文件,双击相应的图标可在Borland JBuilder 7 personal视图右边的Project窗口中看到程序代码。(如图3)



  接下来我们向两个文件中添加代码如下:(注:蓝字部分为添加的代码,其余为Borland JBuilder 7 personal自动生成的代码)

  文件car.java的内容

package car;
import com.siemens.mp.game.*;
import java.lang.*;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class car extends MIDlet
{
private static car instance; 图3
private carscreen screen = new carscreen();
public static char d;
public Melody cuca;
public car() {
instance = this;
int tempo=120;
int cucarachaLength = 34;
int cucaracha[][] = {
{MelodyComposer.TONE_C3, MelodyComposer.TONELENGTH_1_8 },
{MelodyComposer.TONE_D3, MelodyComposer.TONELENGTH_1_8 },
{ MelodyComposer.TONE_E3, MelodyComposer.TONELENGTH_1_4 },
{ MelodyComposer.TONE_E3, MelodyComposer.TONELENGTH_1_4 },
{MelodyComposer.TONE_E3, MelodyComposer.TONELENGTH_1_4 },
{MelodyComposer.TONE_E3, MelodyComposer.TONELENGTH_1_8 },
{MelodyComposer.TONE_F3, MelodyComposer.TONELENGTH_1_8},
{MelodyComposer.TONE_D3, MelodyComposer.TONELENGTH_1_4 },
{MelodyComposer.TONE_D3, MelodyComposer.TONELENGTH_1_4},
{MelodyComposer.TONE_D3, MelodyComposer.TONELENGTH_DOTTED_1_8 },
{MelodyComposer.TONE_D3, MelodyComposer.TONELENGTH_1_16},
{MelodyComposer.TONE_D3, MelodyComposer.TONELENGTH_1_8 },
{MelodyComposer.TONE_E3, MelodyComposer.TONELENGTH_1_8},
{MelodyComposer.TONE_C3, MelodyComposer.TONELENGTH_1_4},
{MelodyComposer.TONE_C3, MelodyComposer.TONELENGTH_1_4},
{MelodyComposer.TONE_C3, MelodyComposer.TONELENGTH_1_4 }
};
if (MelodyComposer.maxLength() < cucarachaLength)
MelodyComposer comp = new MelodyComposer();
comp.setBPM(tempo);
try{
for (int i=0; i<cucarachaLength; i++ )
comp.appendNote(cucaracha[i][0], cucaracha[i][1]);
}
catch (Exception e) { }
if (MelodyComposer.maxLength() != cucarachaLength)
cuca = comp.getMelody();
//以上代码设置音乐音调的长度
}

public void startApp() {
Display.getDisplay(this).setCurrent(screen);
while (1<2)
{
cuca.stop();
cuca.play();//播放音乐
Light.setLightOn();//背景灯亮
Light.setLightOff();
Vibrator.startVibrator();//振动开
try{Thread.sleep(100); }
catch (Exception e) { }
Vibrator.stopVibrator();//振动停
for(int i = 0; i < 12; i++)
{ screen.repaint();//在屏幕上画图
try
{ Thread.currentThread();
Thread.sleep(100L);
}
catch(Exception exception) { }
}
d = '\uE1Ef';
screen.c=d;
}
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
public static void quitApp() {
instance.destroyApp(true);
instance.notifyDestroyed();
instance = null;
}
}

共2页  1 2

 
 
标签: 小程序 , 手机 , Java , DIY , 程序 打印本文
 
 
  热点搜索
 
 
 



Valid XHTML 1.0 Transitional
Copyright ©2005 - 2008 Rdxx.Com,All Rights Reserved
收藏本页
收藏本站