到目前(2010/1/20)为止,J2ME Polish官方网站上公布的Polish最新版本是2.1.4,但是鉴于本人使用Eclipse-SDK-3.5.1-win32 + J2ME-Polish-2.1.3版本配置时反复试验均没有成功,于是改为Eclipse-SDK-3.4.1-win32 + J2ME-Polish-2.0.1版本进行配置,下面就对配置过程以及最后创建工程的整个过程做一个介绍。
首先自然是Eclipse SDK的下载和安装,这个过程就不做过多的介绍,本人的默认安装路径是D:\Program Files。
其次是J2ME-Polish-2.0.1版本的安装,具体主要过程如下,前面的过程就不多说了,主要对以下关键几部进行说明:
1.在此选择安装路径,本人的安装路径为D:\Program Files\J2ME-Polish2.0.1文件夹,点击next继续
2.分别设置WTK,各个手机厂商Emulator模拟器(如Nokia),以及IDE(如Eclipse)的安装文件路【注意:这一步的设置十分关键,应仔细设置好】,设置好后点击next继续
3.勾选Eclipse Integration (Mepose)这一项,点击下一步进入安装。
4.安装完成后退出。J2ME-Polish安装完成了,接下来就是在Eclipse中对它进行配置,这时需要一个Mepose的插件,使用Eclipse中的在线安装即可,步骤如下:
1. 选择菜单【Help】->【Software Updates…】,在弹出的对话框中选择Available Software并在右侧的Add Site中的Location处添加地址:即可。
2. 点击Install进行安装。
3. 安装完成后Eclipse会重启。如果安装成功在【Windows】->【Preferences】下会出现J2ME Polish菜单选项(如下图)。如果没能出现则说明安装过程存在问题,在确定所有设置均正常后,可能是由于版本之间的不匹配问题。本人当初安装时,使用的是J2ME Polish 2.1.3与Eclipse SDK 3.5.1就出现过安装结束后没有出现J2ME Polish选项的问题,最后换做现在的版本则安装一切正常。
通过以上步骤J2ME Polish的安装以及集成在IDE环境中的工作就算完成了,接下来新建一个工程来体验一下Polish的功能。
首先来新建一个Polish工程,【File】->【New】->【Other…】,在Java中选择J2ME Polish Project。
键入工程名HelloPolish,勾选Generate template?选项,并在Class name一栏输入主类名PolishHello,Package name一栏中输入包名com.polish.learning,点击next,下一步。
【注意】:此处的Generate template?选项一定要勾选,不然后面建立类时会出现一些问题。
分别指定好Polish,WTK以及手机模拟器的各个路径地址。当然,这些都可以在build.xml文件中进行再设置,这个以后会慢慢给大家介绍。点击next,下一步。
在此,我们选择Configurations中的CLDC/1.1,Platforms中的MIDP/2.0以及Devices中Virtual的Generic/DefaultColorPhone,关于这里的设置,以后会慢慢给大家介绍。设置好后点击next下一步,然后点击Finish完成J2ME Polish工程的创建
这时候,Polish工程就创建完毕了,我们会在左侧的工程区域中看到创建好的工程文件HelloPolish。
其中的com.polish.learning包以及包中的PolishHello.java文件就是我们刚才勾选Generate template?选项后设置的。打开PolishHello.java文件,我们会看到自动生成的一段代码:
接下来,我们在PolishHello.java文件中,输入如下程序段:
view plaincopy to clipboardprint?
·········10········20········30········40········50········60········70········80········90········100·······110·······120·······130·······140·······150
package com.polish.learning;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.StringItem;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
import de.enough.polish.util.Locale;
public class PolishHello extends MIDlet{
private Form myScreen ;
private Display display ;
protected void startApp() throws MIDletStateChangeException{
// TODO: Implement this method.
this.myScreen = new Form(null);
//#style stringItem
StringItem helloPolishItem = new StringItem(null, "Hello Polish !");
this.myScreen.append(helloPolishItem);
this.display = Display.getDisplay(this);
this.display.setCurrent(this.myScreen);
}
protected void pauseApp(){
// TODO: Implement this method.
}
protected void destroyApp(boolean unconditional) throws MIDletStateChangeException{
// TODO: Implement this method.
}
}
package com.polish.learning;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.StringItem;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
import de.enough.polish.util.Locale;
public class PolishHello extends MIDlet{
private Form myScreen ;
private Display display ;
protected void startApp() throws MIDletStateChangeException{
// TODO: Implement this method.
this.myScreen = new Form(null);
//#style stringItem
StringItem helloPolishItem = new StringItem(null, "Hello Polish !");
this.myScreen.append(helloPolishItem);
this.display = Display.getDisplay(this);
this.display.setCurrent(this.myScreen);
}
protected void pauseApp(){
// TODO: Implement this method.
}
protected void destroyApp(boolean unconditional) throws MIDletStateChangeException{
// TODO: Implement this method.
}
}
在“resource”的文件夹下新建两个文件,一个是“polish.css”文件,并在“polish.css”文件中输入以下CSS样式代码:
view plaincopy to clipboardprint?
.stringItem {
margin-top: 2;
padding: 2;
padding-left: 5;
font {
color: black;
size: medium;
style: bold;
}
layout: left;
}
.stringItem {
margin-top: 2;
padding: 2;
padding-left: 5;
font {
color: black;
size: medium;
style: bold;
}
layout: left;
}
然后为了可以顺利的运行,我们需要稍稍改动一下build.xml中的设置,在build.xml文件中找到
view plaincopy to clipboardprint?
在标签内加入一句,变成这样
view plaincopy to clipboardprint?
最后,我们来运行,在PolishHello.java上点击右键,在弹出的菜单上选择【Run As】->再在右边选择【J2ME Polish MIDlet】;可能此时会碰到几种运行时的问题(这些都是本人曾经碰到过的,希望能给大家些帮助)
1. 控制台中提示
com.sun.tools.javac.Main is not on the classpath.
Perhaps JAVA_HOME does not point to the JDK
在网上查了很多的解决办法都比较麻烦,这里有一种简单的方法,就是
Try copying tools.jar from java\jdk1.6.0_11\lib to java\jre6\lib,将jdk lib目录下的tools.jar文件直接拷贝到jre的lib目录中,然后关闭Eclipse再重新打开运行工程文件,上述问题便会得到解决。(至少自己是这样解决的,如果还有解决不了的可以与我联系,咱们一起探讨
2.【注意】:在标签内加入的那句话一定要书写正确,尤其是value中的值:value="HelloPolish,,com.polish.learning.PolishHello ",首先是这个J2ME Polish的工程文件名,然后是刚刚在创建Polish时Generate template?选项中的设置的包名和主类名(不用加后缀.java),这两个之间有两个英文的逗号,这两个逗号可一个都不能少,不然会出现问题。至少本人当初设置时因为少了一个逗号,运行时出现了HelloPolish, null Exception: java.lang.NullPointerException的异常,希望大家注意!
最后,运行的效果如下:
当然,你可以更改resources文件夹下的polish.css文件,来增加它的显示效果,这对于设计更美观的UI起到了极大的帮助作用,对于Polish的深入探讨会继续进行,也希望大家给我更多的宝贵意见,多多与大家交流,由于本人目前还是一个大学生,正处于学习中,这个过程中难免会遇到一些问题和困惑,还希望大家能耐心的帮助我,谢谢!
写这篇文章的目的是由于,自己正在学习Polish,但是从安装到最后的创建运行成功自己遇到了很多问题,这些问题在网上没有现成的答案,多多少少浪费了些时间,但是这其中也学习到了不少,于是将这个过程写出来,希望能与大家分享,帮助那些同样与我有困惑的人,也希望大家还能多多提意见,写博客是第一次,在CSDN这个高手云集的舞台上更是第一次!希望大家多多意见和指导哦!^_^
阅读(798) | 评论(0) | 转发(0) |