MIDletsMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">中GUI(MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">图形)MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">编程 MEspace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
1.MEs New Roman'"> MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">概述
MIDPMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">为运行在MIDPMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">容器中的MIDPMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">应用定义了一个APIMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">,此APIMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">本身是建立在CLDC APIMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">之上的。MIDPMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">用户接口APIMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">的JavaMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">类设计不是基于Java Abstract Window Toolkit(AWT)MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">类的,而是为移动电话这类小型移动信息设备特别设计的。这类设备只有有限的屏幕尺寸和键盘性能。当程序员采用MIDPMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">编写图形应用时,他们只能使用MIDPMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">或CLDC APIMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">。
2.MEs New Roman'"> MIDP GUIMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">类
1MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">)所有MIDP GUIMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">类都是javax.microedition.lcduiMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">包的组成部分。
2MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">)MIDPMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">用户接口的基本抽象图形是屏幕,ScreenMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">类对面向设备的图形和用户交互进行了封装。每次应用只能显示一个屏幕。
3MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">)MIDP APIMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">具有”MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">高级(high-level)”MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">和”MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">低级(low-level)”UIMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">类。
MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">高级UI-----MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">例如Form,List,TextBox,TextField,AlertMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">和TickerMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">具有设备适配功能,它对图象,文本,文本域以及单选按钮等进行支持。
MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">低级UI-----MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">例如CanvasMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">类允许操作者任意绘画。
3.MEs New Roman'"> MIDP GUIMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">中主要的类
1)MEs New Roman'"> GraphicsMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">类-----MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">提供了用来绘画2DMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">几何对象的GraphicsMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">对象。
javax.microedition.lcdui.GraphicsMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">类MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">不是在MIDletMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">中显式创建的,MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">表示抽象画面的CanvasMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">类在MIDP GUIMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">编程中提供了paint()MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">方法,piant()MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">方法取类型为GraphicsMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">的一个参数,MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">用此参数实现MIDletMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">中GraphicsMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">类的功能。
2) DisplayableMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">类-----MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">是一个抽象类 ,DisplayableMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">对象处理MIDletMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">的GUIMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">输出.MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">它有两个派生类javax.microedition.lcdui.CanvasMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">和javax.microedition.lcdui.ScreenMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">。
3)MEs New Roman'"> CanvasMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">类-----CanvasMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">类允许操作者任意绘画,MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">与GraphicsMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">类都是低级UI.MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">由GraphicsMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">类类提供的方法总是在CanvasMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">类的派生类中使用的。
4)MEs New Roman'"> ScreenMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">类-----MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">是高级UIMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">,FormMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">,ListMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">,TextBoxMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">,AlertMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">类都是它的派生类。
4.MEs New Roman'"> MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">下面是GraphicsMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">类用法的一段代码:
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class MidpGraphics extends MIDlet impleMEnts CommandListener
{
Display display;
testCanvas canvas;
public MidpGraphics()
{
display=Display.getDisplay(this);
canvas=new testCanvas();
}
public void startApp() throws MIDletstateChangeException
{
display.setCurrent(canvas);
}
public void pauseApp()
{
}
public void destroyApp(boolean unconditional) throws MIDletstateChangeException
{
}
public void commandAction(Command c,Displayable d)
{
}
}
class testCanvas extends Canvas
{
public void paint(Graphics g)
{
//MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">创建字体对象
Font font=Font.getFont
(Font.FACE_SYSTEM,Font.STYLE_BOLD,Font.SIZE_MEDIUM);
//MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">设定字体对象
g.setFont(font);
//MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">绘画出文本
g.drawString("Hello MIDP",getWidth()/2,getHeight ()/2,Graphics.HCENTER|Graphics.TOP);
try
{
//MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">绘画出图像
Image image=Image.createImage("myimage.png");
g.drawImage(image,0,0,Graphics.HCENTER|Graphics.TOP);
}
catch(Exception e)
{
}
}
}
----------------------------MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">运行效果就是在屏幕的中心显示文本”Hello MIDP”MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">。
5.MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">用MIDletMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">编程来实现SaveMyMoneyMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">银行应用的不同图形用户界面实例代码:
1)MEs New Roman'"> MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">任务陈述:第一屏幕显示包含名为Balance Enquiry(MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">当前余额)MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">,Fixed Deposit Enquiry(MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">定期储蓄)MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">,Check Status Enquiry(MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">支票状况)MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">项的菜单
MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">当用户选择Balance EnquiryMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">应显示进度指示器
MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">当用户选择Fixed Deposit EnquiryMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">应显示进度指示器
MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">当用户选择Check Status EnquiryMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">应显示打入支票号的TextBox
MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">当用户打入支票号后应显示进度指示器
2MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">.代码如下:
// MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">导入lcduiMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">和MidletMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">包
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
// MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">定义扩展MidpGUIMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">类的MIDletMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">类
public class MidpGUI extends MIDlet impleMEnts CommandListener
{
// MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">由DisplayMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">类创建显示管理器
Display display;
// MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">定义窗体对象
Form form = new Form("Container Form");
// ScreenMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">类派生的
// MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">定义列表(MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">主菜单)
List MEnu;
// MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">定义文本框
TextBox input;
// ItemMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">类的组件 (GaugeMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">类表示显示屏幕上的一个条形图)
Gauge gauge = new Gauge("Your enquiry is being processed", false, 100, 30);
// MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">定义来自CommandMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">类的命令
static final Command okCommand = new Command("OK",Command.OK,1);
static final Command backCommand = new Command("Back",Command.BACK,0);
static final Command exitCommand = new Command("Exit", Command.STOP,2);
String currentMEnu; // MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">定义串变量以标识当前的窗体名
public MidpGUI()
{
}
/**
* The startApp() starts the MIDlet, creates a list of items and
* Uses the EXIT command */
public void startApp() throws MIDletstateChangeException
{
// MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">得到displayMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">对象
display = Display.getDisplay(this);
// MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">创建初始菜单并加入项
MEnu = new List("Enquiries", Choice.IMPLICIT);
MEnu.append("Current Balance ", null);
MEnu.append("Fixed Deposit ", null);
MEnu.append("Check Status ", null);
// MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">加入ExitMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">命令到窗体
MEnu.addCommand(exitCommand);
MEnu.setCommandListener(this);
// MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">调用mainMEnuMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">方法,设置初始屏幕
mainMEnu();
// MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">加入计量组件到窗体
form.append(gauge);
}
// mainMEnu MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">方法
void mainMEnu()
{
display.setCurrent(MEnu);
currentMEnu = "Main";
}
public void pauseApp() {
form = null;
display = null;
MEnu = null;
input = null;
gauge = null;
}
// MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">当MIDletMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">被撤消是调用
public void destroyApp(boolean unconditional) throws MIDletstateChangeException
{
notifyDestroyed();
}
//MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">显示TextBoxMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">组件
public void showTextBox()
{
input = new TextBox ("Enter the Check Number:", "", 20, TextField.ANY);
input.addCommand(backCommand);
input.addCommand(okCommand);
input.setCommandListener(this);
input.setString("");
display.setCurrent(input);
currentMEnu = "input";
}
//MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">显示进度指示器屏幕
public void showForm()
{
form.addCommand(backCommand);
form.setCommandListener(this);
display.setCurrent(form);
currentMEnu = "form";
}
//MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">命令激活
public void commandAction(Command c, Displayable d)
{
String label = c.getLabel();
if (label.equals("Exit"))
{
try{
destroyApp(true);}
catch (Exception e){}
}
else if (label.equals("Back"))
{
if(currentMEnu.equals("input") || currentMEnu.equals("form"))
{
// go back to MEnu
mainMEnu();
}
}
else
{
if (label.equals("OK"))
{
showForm();
}
else
{
List down = (List)display.getCurrent();
switch(down.getSelectedIndex())
{
case 0: showForm();break;
case 1: showForm();break;
case 2: showTextBox();break;
}
}
}
}
}
MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">注:所有类及方法的说明可以查看J2ME doc.MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">路径为x:WTK104docsapi
<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>