我的J2ME编程练习(8)——Canvas3

原创 2005年04月22日 17:55:00

/*
 * Canvas3let.java
 *
 * Created on 2005年4月20日, 下午3:55
 */

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

/**
 *
 * @author  Administrator
 * @version
 */
public class Canvas3let extends MIDlet implements CommandListener{
    private Display aDisplay;
   
    private Command okCommand;
    private Command exitCommand;
    private Command backCommand;
   
    private TextBox aTextBox;
   
    private Alert showAlert;
   
    private Image showImage;
   
    private MyCanvas aMyCanvas;
   
    public Canvas3let(){
        exitCommand=new Command("退出",Command.EXIT,1);
        okCommand=new Command("进入",Command.OK,1);
        try{
            showImage=Image.createImage("/sohu.png");
        }
        catch(Exception e){}
       
        showAlert=new Alert("Loading...","载入中……",showImage,AlertType.INFO);
       
       
        aTextBox=new TextBox("KeyPress Test",
                "按下进入键后,即可进入显示界面,可以显示所按按键",
                25,TextField.ANY);
       
        aTextBox.addCommand(exitCommand);
        aTextBox.addCommand(okCommand);
        aTextBox.setCommandListener(this);
       
       
       
    }
    public void startApp() {
        aDisplay=Display.getDisplay(this);
        aDisplay.setCurrent(aTextBox);
    }
   
    public void pauseApp() {
    }
   
    public void destroyApp(boolean unconditional) {
    }
   
    public void commandAction(Command c , Displayable d){
        if(c==exitCommand){
            destroyApp(false);
            notifyDestroyed();
        }
        else if (c==okCommand){
           
            aMyCanvas=new MyCanvas();
            aDisplay.setCurrent(aMyCanvas);
        }
           
        }
   
   
   
    public class MyCanvas extends Canvas implements CommandListener{
       
        String keyName="";
        public MyCanvas(){
            backCommand=new Command("后退",Command.EXIT,1);
            addCommand(backCommand);
            setCommandListener(this);
        }
       
        public void paint(Graphics g){
           //清除屏幕
            g.setColor(0xFFFFFF);
            g.fillRect(0,0,getWidth(),getHeight());
           
            //设置字体颜色并画出所按键的名称
            g.setColor(0);
            g.drawString(keyName,100,100,Graphics.LEFT|Graphics.BOTTOM);
        }
       
        public void commandAction(Command c , Displayable d){
            if (c==backCommand){
                hideNotify();
                //aDisplay.setCurrent(aTextBox);
            }
           
        }
       
        public void keyPressed(int keyCode){
            keyName=getKeyName(keyCode);
            repaint();
        }
        
        protected void hideNotify(){
            aDisplay.setCurrent(showAlert,aTextBox);
        }
    }
}

通过这个程序,主要练习了keyPress的用法。此外,还有hideNotify()的用法,但showNotify()的用法还不是很清楚。

hideNotify()是在画布被从显示屏移除后,实现立刻调用该方法。

shoNotify()是在画布显示在显示屏之前系统将先调用该方法。

j2me学习笔记【8】——TextField的使用实例

下面的一个实例是TextField的使用实例,输入、提交并显示输入内容。 package mtk; import javax.microedition.lcdui.Command; impor...

J2ME 拼图游戏 快速开发 全过程 之代码祥解(3 )——拼图的方格类、个人信息类、选择背景拼图的列表类

拼图的方格类,代码: package cn.edu.xtu.tilepuzzle.model; import javax.microedition.lcdui.Font; import ...

j2me 单个canvas界面设计

为什么只使用一个canvas?1. 节省内存空间2. 页面跳转逻辑简单,方便管理3. 每个页面中有许多相同的元素和函数需要抽象如何实现单个canvas的低级界面设计?1. 抽象每一个界面的类:.pub...

使用NetBeans进行J2ME开发(三):低级图形用户界面Canvas

在这一篇中,我将向大家介绍图形用户界面中的低级图形用户界面。所谓低级图形用户界面,指的是那种我们可以自己在上面画图的控件,它是和TextBox,List等等这些用户控件刚好相对的概念,因为这些用户控件...

j2me canvas

屏幕属性 Canvas类是实现低级API的Displayable类的子类,它提供了绘制方法以及应用程序所忽略的一些低级事件的处理方法,由于Canvas类的paint方法被声明为抽象方法,所以Canv...

转载:j2me Canvas类详解

3.1  游戏用户界面(Canvas) Canvas类是低级用户界面的画布,所有的图形图像绘制和用户交互(包括按键、指针和Command)都由 这个类来负责。在此将详细讲述这个类的使用方法。 3....
  • zrd
  • zrd
  • 2011年12月27日 16:47
  • 406

J2ME 101,第 3 部分: 深入记录管理系统

J2ME 101,第 3 部分: 深入记录管理系统 发布者:IBM   日期:2004-01-22 00:00:00 浏览次数:0 (共有_条评论...

j2me中用canvas实现的目录树代码

  • 2010年08月20日 15:25
  • 4KB
  • 下载

J2ME网络编程使用http和socket的两种方法

本文描述了在J2me中开发主要使用的网络连接方法,分别详细介绍了使用http和socket两种方法。   HttpConnection 首先我们先来看一个简单的例子吧: 主要用到的java包: ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:我的J2ME编程练习(8)——Canvas3
举报原因:
原因补充:

(最多只允许输入30个字)