`
viking168
  • 浏览: 6555 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

j2me高级界面和低级界面的切换

    博客分类:
  • j2me
阅读更多
今天在用j2me做低级界面应用的时候 需要接收用户输入的数据.以前没有做过,整理了一下,写了一个例子.留作参考;全文如下:
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.TextField;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;


public class MainMIDlet extends MIDlet implements CommandListener {
public static MainMIDlet self ;
public static Display display;
MainCanvas mainCanvas ;
private Form form;
TextField t ;
String str ;
private Command confirmCommand = new Command("确定", Command.ITEM, 1);
private Command exitCommand = new Command("返回", Command.EXIT, 1);
public MainMIDlet() {
// TODO Auto-generated constructor stub
self = this ;
mainCanvas = new MainCanvas() ;
display = Display.getDisplay(this);
}

protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
// TODO Auto-generated method stub

}

protected void pauseApp() {
// TODO Auto-generated method stub

}

protected void startApp() throws MIDletStateChangeException {
// TODO Auto-generated method stub
display.setCurrent(mainCanvas);
}

public void gotoForm() {
form = new Form("高级用户界面");
String label = "input:";
String text = "";
int size = 20;
t = new TextField(label, text, size, TextField.ANY);
form.append(t);
form.addCommand(exitCommand);
form.addCommand(confirmCommand);
form.setCommandListener(this);
display.setCurrent(form);
}

public void gotoCanvas(){
display.setCurrent(mainCanvas) ;
MainMIDlet.self.mainCanvas.setFullScreenMode(true) ;
}

class MainCanvas extends Canvas implements Runnable{
Image img ;
public MainCanvas(){
setFullScreenMode(true);
try{
img = Image.createImage("/img.png") ;
}catch(Exception e){
System.out.println("pic not found");
}
new Thread(this).start() ;
}

protected void paint(Graphics g) {
// TODO Auto-generated method stub
g.drawImage(img,0,0,0) ;
g.drawString("低级用户界面",0,0,0) ;
g.drawString("[确定]切换到高级界面", getWidth()/2, getHeight()/2,0) ;
if(str!=null&&str.length()>0)
g.drawString("输入:"+MainMIDlet.self.str, getWidth()/2, getHeight()/2+15, 0) ;
}

public void run() {
// TODO Auto-generated method stub

}

protected void keyPressed(int keyCode) {
// TODO Auto-generated method stub
switch(keyCode){
case -5: //确定
MainMIDlet.self.gotoForm();
break;
}
}

protected void keyReleased(int keyCode) {
// TODO Auto-generated method stub
super.keyReleased(keyCode);
}


}

public void commandAction(Command c, Displayable d) {
// TODO Auto-generated method stub
if(c==exitCommand){
str = null ;
gotoCanvas() ;
}
if(c==confirmCommand){
str = t.getString() ;
gotoCanvas() ;
}
}

}
0
0
分享到:
评论

相关推荐

    j2me 低级界面 输入法 源文件

    这是我业余时间写的一个J2ME低级界面下的输入法 字库内置在类中 混淆后jar包40K左右 输入法实现了最基本的功能 像拼音 英文大小写 数字 标点 文字显示框为多行编辑模式 在以后的版本更新中会增加触摸屏的支持 输入...

    j2me高级用户界面.ppt

    MIDP的用户界面库分为低级和高级API,两者都有各自的事件处理机制。高级API适用于重视移植性的应用,它通过高度抽象的组件来简化开发,但牺牲了对组件外观的精细控制。相反,低级API允许更精细的显示控制,但可能...

    tengge手机端j2me编程教程完整版

    ┌第二章 高级用户界面设计 ┃2_1.信息提示Alert类 ┃2_2.文本界面程序设计 ┃2_3.Form界面程序设计 ┃2_4.列表界面程序设计 ┃2_5.Image类和图形列表提示框 ┃2_6.Form多种控件及跑马灯 ┃2_7.Form界面监听控件...

    最简单的九宫图界面

    本话题主要聚焦于如何在J2ME(Java 2 Micro Edition)环境下,通过低级界面处理技术实现一个简单的九宫格界面。 J2ME是Java平台的一个子集,主要用于嵌入式设备和移动设备的开发,如早期的手机和PDA。由于资源限制...

    J2ME算术游戏《加减等几》源码

    在这个项目中,开发者不仅实现了游戏逻辑,还创造了一个自定义的J2ME低级界面开发框架。这个框架对在CANVAS组件上的多画面切换进行了优化,使得游戏可以在不同的显示状态之间平滑过渡。同时,它处理了键盘事件和触笔...

    J2ME射击游戏Demo,源码分析

    在图形方面,J2ME使用低级的位图操作,开发者需要手动加载图片资源并将其转换为Graphics对象可以绘制的形式。游戏中的动画通常通过切换不同的帧或者平滑地改变图像位置来实现。射击游戏Demo可能包含了多个图像资源,...

    tengge手机端j2me编程教程.doc

    在第二章中,你将学习如何设计J2ME的高级用户界面,包括: 1. **Alert类**:用于显示简短的提示信息。 2. **文本界面**:涉及如何设计和管理文本输入。 3. **Form界面**:提供更复杂的用户交互,可以包含多个控件。...

    (原创)J2ME手机游戏推箱子代码

    2. **Canvas类**:在J2ME中,Canvas类用于创建自定义的图形用户界面,PlayGame类很可能就是基于Canvas进行扩展,实现游戏画面的绘制和更新。Canvas提供了事件处理和低级绘图的方法,如drawRect、drawImage等,使得...

    j2me手机游戏开发技术详解源代码

    2. 渲染技术:J2ME使用低级的Canvas类进行绘图,开发者需要手动管理图形状态,包括颜色、线型、填充等。源代码会展示如何利用这些API创建动态的游戏画面。 3. 碰撞检测:在游戏开发中,碰撞检测是关键的一环,源...

    J2me月光战机游戏源码.rar

    3. **图形与动画(Graphics and Animation)**:J2ME使用低级的图形API,如`Graphics`类,来绘制游戏画面。开发者需要手动处理帧率控制和动画序列。 4. **输入处理(Input Handling)**:J2ME游戏通常监听用户按键...

    低级UI输入框!内置输入法.rar

    然而,“低级”在这里可能指的是这个输入框功能较为基础,不包含高级特性,或者它是针对特定平台或编程环境定制的,而不是使用通用的库或框架。 内置输入法是指在UI输入框中集成了多种语言或特殊字符输入的功能。在...

    基于Java的实例源码-简单模拟的J2ME潜艇大战源代码.zip

    2. **图形与动画**:J2ME提供低级的图形API,如`Graphics`类,用于绘制线条、填充形状和显示文本。开发者可能使用这些API创建潜艇、导弹等游戏对象,并通过改变它们的位置来实现动画效果。 3. **碰撞检测**:游戏中...

    手机游戏开发基础(经典).pdf

    本章主要探讨了手机游戏开发的用户界面(UI)基础知识,以及使用MIDP(Mobile Information Device Profile)中的高级API和低级API进行UI开发的方法。MIDP是J2ME(Java 2 Micro Edition)的一部分,用于开发移动设备...

    java学习资料

    ### Java学习资料:精通J2ME实例教程 #### J2ME环境配置 J2ME(Java 2 Micro Edition)作为Java平台的一个版本,主要...无论是高级还是低级用户界面设计,还是数据管理和网络服务,都是J2ME开发者不可或缺的知识点。

    Java RPG《征途》游戏源代码.rar

    Java RPG《征途》游戏源代码,基于J2ME平台(MIDP2.0,CLDC1.0...PNG压缩,层叠关系,物品掉落与拾取,金钱掉落与拾取,装备,键盘事件,低级绘图,装载进度条,界面开发,地图切换,地图拼凑,主角/英雄,面向对象……

    BattleCity.zip_J2ME_Java_

    MIDP提供了用户界面组件和网络功能,而CLDC则定义了基础的Java运行环境。 坦克大战是一款经典的多人对战游戏,玩家控制坦克在地图上移动,目标是摧毁敌方坦克并保护自己的基地。在J2ME平台上实现这款游戏,开发者...

    ##1.什么是程序.md

    - **高级语言**: 如Java、Python,接近自然语言,易于学习和编写。 - **低级语言**: 如C语言,更接近计算机硬件操作,难度较高但性能更好。 - **静态语言**: 如Java、C,需要显式声明类型,编译时进行类型检查。 ...

Global site tag (gtag.js) - Google Analytics