最近开始学习为手机开发软件了
今天上网搜索了一下相关资料然后就开始写程序了
值得一提的是SUN公司目前提供的开发工具已经相当成熟了目前已经发展到Java Platform Micro Edition Software Development Kit 了用这套工具可以写代码编译以及调试最令人满意的是它提供了Mac的版本这样我就不用为了开发而安装Windows了
今天写的代码主要是为了了解开发的流程以及基本的技巧主要测试了canvasfontdrawstring等功能学会了如何在屏幕上输出文字和图形
用于屏幕输出的主要有两种类型的控件(或者说是类)分别为screen和canvas;
前者属于比较高级的控件其跨平台的兼容性比较好例如当你使用textbox(screen的子类)的时候你不用关心坐标字体和颜色等问题这些都由平台负责管理当然你对它的控制力度也变小了你更多的是关注它的功能是否满足你的需求
如果用后者则你需要关心的事情就多了因为canvas相当于一块画布上面画什么在什么地方画怎么画都需要你考虑控制的力度是比较大但是写程序也变得相当复杂
package hello;
import javaxmicroeditionmidlet*;
import javaxmicroeditionlcdui*;
public class HelloMIDlet extends MIDlet implements CommandListener {
private Command exitCommand; // The exit command
private Command view;
private Display display; // The display for this MIDlet
public HelloMIDlet() {
display = DisplaygetDisplay(this);
exitCommand = new Command(Exit CommandEXIT );
view = new Command(View CommandITEM );
}
public void startApp() {
TextBox t = new TextBox(Hello Hello World! );
taddCommand(exitCommand);
taddCommand(view);
tsetCommandListener(this);
MyCanvas m=new MyCanvas();
if (SystemgetProperty(
microeditioniofileFileConnectionversion) != null)
tsetTicker(new Ticker(SystemgetProperty(
microeditioniofileFileConnectionversion)));
else
tsetTicker(new Ticker(no));
displaysetCurrent(t);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
public void commandAction(Command c Displayable s) {
if (c == exitCommand) {
destroyApp(false);
notifyDestroyed();
}
}
}
package hello;
import javaxmicroeditionlcdui*;
public class MyCanvas extends Canvas implements Runnable {
int count;
Font font;
public MyCanvas() {
Thread th=new Thread(this);
thstart();
font=FontgetFont(FontFACE_MONOSPACEFontSTYLE_ITALIC FontSIZE_LARGE);
}
//Drawing on canvas
public void paint(Graphics g) {
gsetFont(font);
gsetColor();
gfillRect();
gsetColor();
gfillArc( );
if(count==)
{
gdrawString(counter=+countGraphicsTOP|GraphicsLEFT);
}
else
{
gsetColor();
gdrawString(counter=+(count ) GraphicsTOP|GraphicsLEFT);
gsetColor();
gdrawString(counter=+countGraphicsTOP|GraphicsLEFT);
}
}
//Handling keyEvents
protected void keyPressed(int keyCode) {
repaint();
}
public void run() {
while(true) {
count++;
try {
Threadsleep();
}catch(Exception e){}
repaint();
count%=;
}
}
}
以上两个文件经过编译打包之后就形成个文件分别为HelloWorldjad和HelloWorldjar
通过蓝牙上传到我的dopod s手机上之后点击HelloWorldjad文件系统就会进行安装并运行
经过检测我发现我的windows mobile手机支持file connection api看来有得玩啦