博文

TextBox例子(2006-08-05 20:11:00)

摘要:import javax.microedition.lcdui.*;
import javax.microedition.midlet.MIDlet; //TextBox事例,made by sword2008
public class TextBoxDemo extends MIDlet implements CommandListener
{
//private
 private Display display;
 private ChoiceGroup types;
 private ChoiceGroup options;
 private Form mainform;
 private Command exitcmd=new Command("EXIT",Command.EXIT,1);
 private Command backcmd=new Command("BACK",Command.BACK,1);
 private Command screencmd=new Command("SCREEN",Command.SCREEN,1);
 private boolean firstTime; //label
 String textlabels[]={"字","邮箱","NUMBRIC","DECIMAL","电话","网址",};
 int textBoxType[]={TextField.ANY,TextField.EMAILADDR,TextField.NUMERIC,
      TextField.DECIMAL,TextField.PHONENUMBER,TextField.URL};
  public TextBoxDemo(){
  display=Display.getDisplay(this);
  firstTime=true;
   }    ......

阅读全文(3380) | 评论:0

List与图象载入(2006-08-05 09:55:00)

摘要:import javax.microedition.midlet.*;
import javax.microedition.lcdui.*; public class PhotoMIDlet extends MIDlet implements CommandListener
{
  String list1[]={"王","道","仁"};
  private Command okCommand=new Command("确定",Command.OK,1);
  private Command backCommand=new Command("返回",Command.BACK,1);
  private Command exitCommand=new Command("退出",Command.EXIT,1);
  private List list2=new List("Photo",List.EXCLUSIVE,list1,null);
    private Display display=null;
    private Form form=new Form("Photo");
    private Image img=null;
 public PhotoMIDlet(){
  list2.addCommand(okCommand);
  list2.addCommand(exitCommand);
  list2.setCommandListener(this);
  form.addCommand(okCommand);
  form.addCommand(exitCommand);
  form.setCommandListener(this);
  
}   public void startApp(){
  ......

阅读全文(2940) | 评论:1

[转]第4章  MIDP低级UI的使用2(2006-08-05 08:59:00)

摘要:下面给出一段代码,让大家体会一下如何在实际开发过程当中妥善处理屏幕事件:   import javax.microedition.lcdui.*; import javax.microedition.midlet.*; public class test4 extends Canvas implements CommandListener {         public test4()         {                 setTitle("全屏幕测试") ;                 setTicker(new Ticker("Ticker ")) ;                 addCommand(new Command("全屏幕",Command.SCREEN,1)) ;                 addCommand(new Command("正常",Command.SCREEN,1)) ;                 setCommandListener(this) ;         }     ......

阅读全文(2849) | 评论:0

[转]第4章  MIDP低级UI的使用1(2006-08-05 08:59:00)

摘要:4.1    低级API与低级事件的联系 4.2    重绘事件及Graphics入门 4.2.1     坐标概念 4.2.2     颜色操作 4.2.3     绘图操作 4.3    Canvas与屏幕事件处理 4.4    键盘及触控屏幕事件的处理 4.5    Graphics相关类 4.5.1     Image类 4.5.2     字体类  
  我们从javax.microedition.lcdui.Canvas开始了解我们的低级UI,我们要用到低级UI必须要继承Canvas这个抽象类,在 Canvas的核心是paint()这个方法,这个方法做是负责绘制屏幕上的画面,每当屏幕需要重新绘制时,就会产生重绘事件时,系统就会自动调用paint(),并传入一个Graphics对象。   任何时候我们都可以通过调用reapaint()方法来产生重绘事件,它有两个方法,一个需要四个参数,分别用来指示起始坐标(X,Y),长宽,另一个则不需要任何参数,代表整个画面重新绘制。   我们可以通过getWidth()和getHeight() 方法获得Canvas的当前范围大小。每当Canvas 范围大小发生变化时,就会自动调用Canvas类的 sizeChanged()方法。   在低级UI里,我们可以直接把Graphics渲染到屏幕上,也可以在屏幕外合成到一个 Image中,已渲染的图形具体是合成Image还是显示到屏幕上,要看这个Graphics具体的来源而定,而渲染到屏幕上的Graphics对象将被送到paint()方法中来进行调度,这也是显示在屏幕上的唯一的途径,仅在paint()方法的执行期间这个应用程序可以对Graphics进行操作,......

阅读全文(2514) | 评论:0

[转]第3章  MIDP高级UI 的使用2(2006-08-05 08:55:00)

摘要:3.4    Alert          这个类比较有意思,它是用来提醒用户关于错误或者其他异常情况的屏幕对象,这个警告只能作为简短的信息记录和提醒,如果我们需要长一点的,我们可以使用其它的Screen子类,最常见的是Form。同时我们顺便提一下跟它相关的一个类AlertType,需要提醒读者注意的一点是AlertType是一个本身无法实体化的工具类。(即我们不能象Form那样产生具体的对象)   AlertType共有5个类型:ALARM(警报),CONFIRMATION(确定),ERROR(错误),INFO(信息提示),WARNING(警告)。   Alert是一个比较特殊的屏幕对象,当我们在setCurrent()方法中调用它的时候,它会先发出一段警告的声音,然后彩绘显示在屏幕上,过了一段时间之后,它会自动跳回之前的画面。   我们需要注意的是我们必须在使用setCurrent()显示Alert之前定义好它可以跳回的画面,否则会发生异常。   在Alert中我们可以通过setTimeout()方法来设定间隔的时间,setType()来调用我们上面提到的四种类型,setImage()来定义图片,setString()来定义内含文字,同时通过getType(),getImage(),getString()来取得相应的对象。   当Alert显示了我们在setTimeout()中指定的间隔时间后,它会跳回我们之前指定的对象,如果我们在指定显示时间时传入了Alert.FOREVER作为参数,这时,除非用户按下定义哈哦的接触键,否则,屏幕会一直显示这个Alert。如果在一个定时的Alert中只有一个命令,那么超时发生时命令会自动激活。   import javax.microedition.lcdui.*; import javax.microedition.midlet.MIDlet;     public class AlertDemo     extends MIDlet {   ......

阅读全文(2826) | 评论:0

[转]第3章  MIDP高级UI 的使用1(2006-08-05 08:55:00)

摘要:3.1    概述 我们在这一节要介绍一下整个LCDUI包的结构,让读者对我们整个UI的学习的有个大致的了解。下图为我们展示了整个LCDUI包的体系:       Screen类属于高级图形用户界面组件,就是我们这一章要着重介绍的内容,Canvas是低级图形用户界面组件,在同一时刻,只能有唯一一个Screen或者Canvas类的子类显示在屏幕上,我们可以调用Display的setCurrent()的方法来将前一个画面替换掉,我们必须自行将前一个画面的状态保留起来,并自己控制整个程序画面的切换。   同时我们可以运用javax.microedition.lcdui.Command类来给我们的提供菜单项目的功能,分别是:Command.BACKCommand、Command.CANCEL、Command.EXIT、Command.HELP、Command.ITEM、Command.OK、Command.SCREEN和Command.STOP,我们在Displayable对象中定义了addCommand()和removeCommand()两个方法,这就意味着我们可以在高级UI和低级UI中同时使用Command类,同时我们通过注册Command事件来达到事件处理的目的,即Command必须与CommandListener接口配合使用才能反映用户的动作,具体的使用方法我们在具体的示例中会给出详细的用法,读者可以参阅API的说明文档获得进一步的认识。 还有在Displayable类的子类中都加入了Ticker,我们可以用setTicker()来设定画面上的Ticker,或者用getTicker()这个方法来取得画面所含的Ticker对象。   下面我们给出Screen类的主要结构图:     3.2    列表List 根据第零节的概述我们已经大概了解了Lcdui这个包,现在让我们来开始介绍Screen这个类里面的几个重要的类,我们本节介绍的是Screen的一个子类List,它一共有三种具体的类型:implicit(简易式),exclusive(单选式),multiple(多选式)。   与相关的L......

阅读全文(2982) | 评论:0

[转]第3章  MIDP高级UI 的使用3(2006-08-05 08:53:00)

摘要:3.6.2   ImageItem 下面我们来看ImageItem,ImageItem和StringItem其实区别仅仅在于一个是显示图像,一个是文字,它同样有两个构造函数,其中用到最多的是5个参数的构造函数,第一个是该Item的Label,第二个是图片,第三个是等效线,第四个是取代的文字(图片无法现实时),第五个是外观(和StringItem相同)。   import javax.microedition.lcdui.*; import javax.microedition.midlet.*; public class ImageItemMIDlet extends MIDlet implements ItemCommandListener {         private Display display;         public ImageItemMIDlet()         {                 display = Display.getDisplay(this);         }         public void startApp()         {                 Image img = null ;            &......

阅读全文(2841) | 评论:0

[转]J2ME手机游戏开发环境WTK配置(2006-08-04 15:58:00)

摘要:J2ME新手最常使用的开发工具Wireless Toolkit(WTK)。WTK 的全称是Sun J2ME Wireless Toolkit —— Sun的无线开发工具包。这一工具包的设计目的是为了帮助开发人员简化j2me的开发过程。
  WTK是Sun提供的一个开发工具包。目前各大手机厂商往往把WTK经过自身的简化与改装,推出适合自身产品,如SonyEricsson,Nokia Developer’s suit等,都属于此种类型;而通过JBuilder, Eclipse等IDE,J2ME开发包工具可以被绑定在这些集成开发环境中,进一步提高开发效率。

1.1安装过程

WTK的安装程序与普通程序一样简单,只有一点需要注意,由于WTK自身并没有附带Java的运行环境JDK,所以,在WTK安装之前你需要安装自己的JDK(我们这里选用的是JDK1.4.2)。JDK的安装比较简单,和普通程序的安装一样,读者可以从附带的光盘中找到JDK1.4.2进行安装,不需要进行特殊设置。
JDK安装成功后,接下来我们安装WTK。WTK会首先自动检测当前系统已有的Java虚拟机:



然后显示出当前虚拟机所在路径



您在确定无误后,就可以继续了,最后安装成功后,您将得到一个包括多种实用工具的开发包。以下是安装显示的菜单项。



1.2执行MIDlet、打包和混淆

1.2.1执行MIDlet
除了在KToolbar中执行一个程序,我们还可以在程序组中直接选择Run MIDP Application…, 这是就可以在弹出的对话框中选择其它路径中的JAD程序运行了。





*当我们直接选择运行时,需要注意两个问题:
1.     JAD描述文件与其指定的JAR文件在同一个目录下。
2.     运行目录路径中不要包含中文。

1.2.2打包成JAR
KToolbar的生成功能只能帮我们将源代码编译并预先审核,并不会帮我们产生JAR文件,而我们如果要发布MIDP程序,除了JAD描述文件,JAR是必须的,这就需要打包。
......

阅读全文(5157) | 评论:1

[转]在Eclipse3.0.1上安装EclipseME0.5.5版本 (2006-08-03 15:20:00)

摘要:Eclipse是IBM公司资助的开源IDE开发环境,Eclipse正受到越来越多的开发人员的关注。J2ME Wireless Toolkit 2.1提供了运行J2ME应用程序所需要的库以及模拟器等。EclipseME插件可以让开发人员在 Eclipse环境中轻松开发J2ME应用程序。现在Eclipse的最新版本是3.0.1,而EclipseME刚推出的0.5.5版本,此版本增加了很多新的功能,并且此版本有着跟已往完全不同的安装方式。

1. 安装前的准备工作:

a) JDK的安装:

J2SE 1.5 http://java.sun.com/j2se/1.5.0/index.jsp 或J2SE 1.4.2 http://java.sun.com/j2se/1.4.2/index.jsp 其中1.4.2版本文件名为:j2sdk-1_4_2_03-windows-i586-p.exe 48.2MB;

b) J2ME Wireless Toolkit 2.1_01的安装:

http://java.sun.com/products/j2mewtoolkit/download-2_1.html 下载文件名为:j2me_wireless_toolkit-2_1_01-windows.exe 14.4MB;

c) Eclipse 3.0.1的安装:

http://www.eclipse.org/downloads/index.php 下载后解压到一个目录下即可(本文假设解压到D:\eclipse中)下载文件名为:eclipse-SDK-3.0.1-win32.zip 85.4MB;

d) EclipseME 0.5.5 的下载:

http://sourceforge.net/project/showfiles.php?group_id=86829 文件名为:eclipseme.feature_0.5.5_site.zip 4.13MB。

2. 开始安装EclipseME 0.5.5:

从0.5.5版本开始,EclipseME将采用新的安装模式。而在0.5.0版本及之前版本均是一个压缩文件解压到Eclipse的安装路径下即可。这种安装......

阅读全文(2437) | 评论:0

[程序之巢]j2me下载的总结(2006-08-03 11:41:00)

摘要:1首先到www.java.sun.com下下载j2se sdk 1.4以上版本 2下载Eclipse3.2,和sdk 在同一路径 3J2ME Wireless Toolkit 2.1 4下载EclipseME,要配置 基本上就OK了,最好是中文版,而且Eclipse3.2会用 5蓝牙接口等接入手机 6找书学j2me编程......

阅读全文(4645) | 评论:1