我的J2ME编程练习(5)——ImageItem

编程

/* * imageItemlet.java * * Created on 2005年4月17日, 下午8:56 */

import javax.microedition.midlet.*;import javax.microedition.lcdui.*;

/** * * @author  Administrator * @version */public class imageItemlet extends MIDlet implements CommandListener,ItemCommandListener{        private Form aForm;    private Image sohuImage;    private Image neImage;    private ImageItem sohuImageItem;    private ImageItem neImageItem;    private Display aDisplay;    private Command exitCommand;    private Command connectCommand;    private Spacer aSpacer;    private Alert anAlert;            public imageItemlet() {        aForm=new Form("ImageItemTest");        exitCommand=new Command("EXIT",Command.EXIT,1);        connectCommand=new Command("Connect",Command.ITEM,2);        aSpacer=new Spacer(10,2);        anAlert=new Alert("Connecting...","Connecting to www.163.com ...",                null,AlertType.INFO);        try{            sohuImage=Image.createImage("/sohu.png");            sohuImageItem=new ImageItem(null,sohuImage,ImageItem.LAYOUT_RIGHT,                    "This is Sohu!");                        aSpacer.setLayout(Item.LAYOUT_EXPAND);

            //The profram will connect to www.163.com and display the Alert            //when click the ImageItem of 163.png .

            neImage=Image.createImage("/163.png");            neImageItem=new ImageItem(null,neImage,ImageItem.LAYOUT_RIGHT,                    "This is 163",Item.HYPERLINK);            neImageItem.setItemCommandListener(this);            neImageItem.setDefaultCommand(connectCommand);                        aForm.append(sohuImageItem);            aForm.append(aSpacer);            aForm.append(neImageItem);            aForm.addCommand(exitCommand);            aForm.setCommandListener(this);        }                        catch (Exception e){            e.printStackTrace();        }            }    public void startApp() {        aDisplay=Display.getDisplay(this);        aDisplay.setCurrent(aForm);    }        public void pauseApp() {    }        public void destroyApp(boolean unconditional) {    }        public void commandAction(Command c,Displayable d){        if(c==exitCommand){            destroyApp(false);            notifyDestroyed();        }    }        public void commandAction(Command c,Item i){        if(c==connectCommand){            aDisplay.setCurrent(anAlert,aForm);        }    }        }

这个程序的比较新的地方在于使用了midp2.0中新增加的ITEM类的外观模式和SPACER类。其中外观模式的使用在StringItem中已经介绍过了。

public Spacer(int minWidth, int minHeight),SPACER类在本程序中设置为Item.LAYOUT_EXPAND,即填充剩余的空白部分。这样,运行后可以看到两个ImageItem对象分别位于左右两端,布局上好看一些。

时间: 2024-10-02 14:31:56

我的J2ME编程练习(5)——ImageItem的相关文章

学习J2ME编程需要掌握的七种技术

编程 学习J2ME编程需要掌握的七种技术 J2ME编程是Java在智能家电领域的应用,主要包含以下技术: 1. 高级用户界面 高级用户界面是指J2ME编程中用到的Form(窗体).TextBox(文本框).List(列表框)和Alert(提示信息框)等的使用,以及其中的一些控件的使用,当然也包括相应的事件处理.应用在一般的如登陆窗体.关于窗体和提示等. 2. 低级用户界面 低级用户界面指Canvas类和Graphics类等的使用,以及相应的事件处理,应用与游戏编程以及特殊界面的绘制等. 3. 记

在J2ME编程中使用Nokia的中文模拟器

在J2ME编程中,经常需要使用Nokia系列的模拟器,但是Nokia Developer's Suit for J2ME中提供的三个模拟器都无法正确的显示中文,在程序开发过程中,大家经常要为这个事情头疼. 下面介绍几个可以在编程中支持中文显示的Nokia模拟器: 1.7210模拟器 如果大家进行是Nokia S40 1.0版本的开发的话,可以使用7210的模拟器,下载地址为:http://www.forum.nokia.com/main/0,6566,034-31,00.html 安装完成以后,

J2ME编程最佳实践之屏幕导航

编程|导航 除了游戏程序,在通常的MIDP应用程序中,通常会有很多个Screen或Canvas,这些屏幕一般靠命令来实现切换,比如用户点击"Next"应该跳到下一屏,点击"Back"应该返回到上一屏.当屏幕数量相当可观时,如何在各个屏幕之间导航就值得好好考虑了. 经典的MVC模式可用于屏幕导航,Model用于存储应用程序数据,而View则是各个Displayable对象,Controller需要单独的一个类实现.由于MIDlet类本身在生命周期内就只有一个实例,因此

J2ME编程最佳实践之联网开发

编程 由于无线设备所能支持的网络协议非常有限,仅限于HTTP,Socket,UDP等几种协议,不同的厂家可能还支持其他网络协议,但是,MIDP 1.0规范规定,HTTP协议是必须实现的协议,而其他协议的实现都是可选的.因此,为了能在不同类型的手机上移植,我们尽量采用HTTP作为网络连接的首选协议,这样还能重用服务器端的代码.但是,由于HTTP是一个基于文本的效率较低的协议,因此,必须仔细考虑手机和服务器端的通信内容,尽可能地提高效率. 对于MIDP应用程序,应当尽量做到: 1.发送请求时,附加一

J2ME编程最佳实践之灵活的RMS应用

编程 MIDP应用程序的标准持久化方案就是使用RMS.RMS类似于一个小型数据库,RecordStore相当于数据库的表,每个"表"由若干记录(Record)构成,一条记录就是一个用int表示的记录号RecordID和用byte[]表示的内容.记录号可以看作是"主键",byte[]数组存储内容. RMS提供的记录操作可以实现根据ID直接获得记录,或者枚举出一个表中的所有记录. 枚举记录是非常低效的,因为只能比较byte[]数据来确定该记录是否是所需的记录.通过ID获

我的J2ME编程联系(3)——Gauge

编程 /* * gaugelet.java * * Created on 2005年4月15日, 下午5:19 */ import javax.microedition.midlet.*;import javax.microedition.lcdui.*; /** * * @author  Administrator * @version */public class gaugelet extends MIDlet implements CommandListener{        priva

我的J2ME编程练习(4)——StringItem

编程   /* * stringItemlet.java * * Created on 2005年4月14日, 下午4:26 */import javax.microedition.midlet.*;import javax.microedition.lcdui.*;/** * * @author  Administrator * @version */public class stringItemlet extends MIDlet implements CommandListener,Ite

我的J2ME编程联系(2)——DateField

编程    /*  * dateFieldlet.java  *  * Created on 2005年4月15日, 上午11:32  */ import javax.microedition.midlet.*; import javax.microedition.lcdui.*; /**  *  * @author  Administrator  * @version  */ public class dateFieldlet extends MIDlet implements Command

我的J2ME编程联系(1)——List

编程   import javax.microedition.lcdui.*;import javax.microedition.midlet.*;public class listtest extends MIDlet implements CommandListener{  private List alist; private Command exitcommand;        private Command okcommand; private Display adisplay;