J2ME学习笔记(3) J2ME开发中有中文问题吗?可能有,但是我目前没有遇到。因为我没有手机,只能在模拟器上运行J2ME程序,真实的情况是什么样子我也不知道。在水木上有人说已经出现了中文问题,在模拟器上好好的,到了真正的手机上却是一团乱码。我现在也没有办法,只有在遇到的时候再补上这一节。我写的测试程序如下所示,这个程序是在HelloWorld.java的基础上改进而来的 。 package fancy.test;
import javax.microedition.midlet.*; import javax.microedition.lcdui.*; import java.util.*;
public class Poem extends MIDlet implements CommandListener { private Display display; private Form props;
private Command exitCommand = new Command("Exit", Command.EXIT, 1);
public Poem() { display = Display.getDisplay(this);
}
public void startApp() { props = new Form("影落寒潭的签名档"); props.append("小楼一夜听春雨\n"); props.append("深巷明朝卖杏花\n\r"); props.append("虹虹的签名档\n"); props.append("鸳鸯独宿何曾惯\n"); props.append("化作西楼一缕云\n"); props.addCommand(exitCommand); props.setCommandListener(this); display.setCurrent(props); }
public void commandAction(Command c, Displayable s) { if (c == exitCommand) { destroyApp(false); notifyDestroyed(); } }
public void destroyApp(boolean unconditional) { }
public void pauseApp() { display.setCurrent(null); props = null; } } 使用普通的编辑器编辑好上述文件以后,保存为Poem.java,保存路径为
src="/Files/Pic/2006-4/11/064110324055008.png"、fancy.test.Poem三项。单击OK按钮,再单击OK按 钮,关闭配置窗口,回到Ktoolbar的主界面,再次编译。一切无误之后,单击Run按钮运行程序。 注意:每新编写一个程序,都要按照这个步骤进行配置,再编译运行,我以后就不再重复描述这个步骤了。
请看下面的代码(Prop.java): package fancy.test;
import javax.microedition.midlet.*; import javax.microedition.lcdui.*; import java.util.*;
public class Prop extends MIDlet implements CommandListener { private Display display; private Form props;
private Command exitCommand = new Command("Exit", Command.EXIT, 1);
public Prop() { display = Display.getDisplay(this); }
public void startApp() { props = new Form("System Properties"); props.append("Hello World!\n"); long time=System.currentTimeMillis(); props.append("current time:"+time+"\n"); props.append("microedition.configuration:"+ System.getProperty("microedition.configuration")+"\n"); props.append("microedition.profiles:"+ System.getProperty("microedition.profiles")+"\n"); props.append("microedition.platform:"+ System.getProperty("microedition.platform")+"\n"); props.append("microedition.locale:"+
System.getProperty("microedition.locale")+"\n"); props.append("microedition.encoding:"+ System.getProperty("microedition.encoding")+"\n");
props.append("java.version:"+System.getProperty("java.version")+"\n"); / /null
props.append("java.vendor:"+System.getProperty("java.vendor")+"\n"); //n ull
props.append("java.vm.name:"+System.getProperty("java.vm.name")+"\n"); / /null
props.append("java.vm.version:"+System.getProperty("java.vm. version")+" \n");// null props.append("os.name:"+System.getProperty("os.name")+"\n");//nu props.append("os.arch:"+System.getProperty("os.arch")+"\n");//nu
props.append("os.version:"+System.getProperty("os.version")+"\n"); //nul l
props.append("user.name:"+System.getProperty("user.name")+"\n"); //null props.addCommand(exitCommand); props.setCommandListener(this); display.setCurrent(props); }
public void commandAction(Command c, Displayable s) { if (c == exitCommand) { destroyApp(false); notifyDestroyed(); } }
public void destroyApp(boolean unconditional)
{ }
public void pauseApp() { display.setCurrent(null); props = null; } } 这个程序的作用是输出系统中各个环境属性的值。诀窍是使用System类的 getProperty()方法。请注意,J2ME核心包的System类已经不支持getProperties()方法了,而且很多环境属性都不再支持了,比如java.version、java.vendor等等。
(未完待续)
|