关闭

javaMe开发菜单组件

标签: javamestringbytemenusystemclass
539人阅读 评论(0) 收藏 举报
分类:

package test;

import java.io.IOException;

import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Font;
import javax.microedition.lcdui.Graphics;

public class Menu extends Canvas{
 
 private Displayable parentDisplay=null;   
 
 private String LeftMenuTitle="选项";
 private String RightMenuTitle="取消";
 
 private byte left_right=0;
 private byte up_down=0;
 
 private int menuBarBgColor=0XBCBCBC;
 private int menuBarFgColor=0; 
 private Font  menuBarFont=Font.getFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN, Font.SIZE_SMALL); 

 private String[]radiuoButtonName=null;
 
 private byte indexSelected=0;//选中
 private byte indexFource=0;//焦点
 private byte  maxFource=0;

 private boolean isShowMenu=false;
 
 public Menu(){  
 }
 
  protected void drawRGB(Graphics g) {    
         int ai[] = new int[this.getWidth()];
         for (int j1 = 0; j1 < ai.length; j1++)
             ai[j1] = 0x90000000;
         g.drawRGB(ai, 0, 0, 0, 0,this.getWidth(),this.getHeight(), true); // 绘制透明景色
  } 
 
  
  protected final void paint(Graphics arg0) { 
  
   painMenuBar(arg0);  
   if(isShowMenu)
    paintContent(arg0);
  
 }
 
  private void painMenuBar(Graphics arg0){ 
  // arg0.setColor(255,255, 255);
  // arg0.fillRect(0,0,this.getWidth(), this.getHeight()-20);
   arg0.setColor(menuBarBgColor);   
   arg0.fillRect(0,this.getHeight()-20,this.getWidth(),20);  
   arg0.setColor(menuBarFgColor);
   arg0.setFont(menuBarFont);  
   arg0.drawString(LeftMenuTitle,5,this.getHeight()-10-menuBarFont.getHeight()/2,0);
   arg0.drawString(RightMenuTitle,this.getWidth()-menuBarFont.stringWidth(RightMenuTitle),this.getHeight()-20+(20-menuBarFont.getHeight())/2,0);
  }
  private int MenuHight=120;
  private int MenuWidth=100;
 
  private int MenuBgColor=0X3eFeB;
 private void paintContent(Graphics arg0){
  
  arg0.setColor(MenuBgColor);  
  arg0.fillRect(0,this.getHeight()-20-MenuHight,MenuWidth+4,MenuHight);   
  for(int i=0;i<radiuoButtonName.length;i++){   
       if(i==indexFource){
    arg0.setColor(0X1035);
    arg0.fillRect(2,this.getHeight()-20-(menuBarFont.getHeight()+menuBarFont.getHeight()*i),MenuWidth, menuBarFont.getHeight()) ;
   }   
    arg0.setColor(0XBBBBB);
   arg0.drawString(radiuoButtonName[i],3,this.getHeight()-20-menuBarFont.getHeight()*(i+1),0);
  }  

 } 
 private Display display=null;//窗口容器
    public void add(Display display){
     this.display=display;
    }
 protected void keyPressed(int keyCode) { 
  if(keyCode==-2){
   
   if(++indexFource>maxFource-1) 
    indexFource=0;
  }
  else if(keyCode==-1){
   if(--indexFource<0)
    indexFource=(byte) (maxFource-1);
  }
  else if(keyCode==-5){
   
  }
  else if(keyCode==-6)
   isShowMenu=true;
  else if(keyCode==-7){
   isShowMenu=false;
   setVisible(false);
  }
  repaint();
 }

   public void add(String[] buttonName){   
  radiuoButtonName=buttonName;
  maxFource+=radiuoButtonName.length;  
 } 
 public void setMenuBarBgColor(int titleBgColor){
  this.menuBarBgColor=titleBgColor;
  repaint();
 }
 public void setMenuBarFont(Font font){//设置字体
  menuBarFont=font;  
  repaint();
 }
 
 public void setVisible(boolean isVisible){  
    //  this.setFullScreenMode(true);
      if(isVisible){     
       parentDisplay=display.getCurrent();
       display.setCurrent(this);      
      }
      else{     
     display.setCurrent(parentDisplay);       
      }
    }
 public String getLeftMenuTitle() {
  return LeftMenuTitle;
 }

 public void setLeftMenuTitle(String leftMenuTitle) {
  LeftMenuTitle = leftMenuTitle;
 }

 public String getRightMenuTitle() {
  return RightMenuTitle;
 }

 public void setRightMenuTitle(String rightMenuTitle) {
  RightMenuTitle = rightMenuTitle;
 }
}

0
0
查看评论

JavaME 开发流程

 完整的MIDP手机程序开发流程如下表(其中混淆为可选): 流程 工具 输入
  • yangbomy
  • yangbomy
  • 2007-04-29 11:58
  • 741

Android和Java ME的区别与联系

很多学生问到Android和JavaME的关系,我这里谈谈我的看法。 一.区别: 1.Android是一个完整的移动设备操作系统,由linux操作系统,中间件,C类库和核心应用程序组成。 2.java Me是java的一个微型版本,针对移动设备开发应用程序的开发包,它必须有底层操作系统支持。 二.联...
  • followingturing
  • followingturing
  • 2012-02-20 15:49
  • 11488

一句话搞懂JavaSE、JavaEE和JavaME之间的区别

许多零基础Java开发者不知道JavaSE、JavaEE、JavaME三者之间的区别,那我们究竟该学习JavaSE还是JavaEE,还是JavaME呢? 本文将以通俗易懂的方式给大家讲解这三者之间的区别。 JAVA是一门编程语言,分为三大版本。 JavaSE,标准版,主要用...
  • qq_41214527
  • qq_41214527
  • 2017-12-13 10:12
  • 168

最简洁完整的Java基础教程(基本语法、继承、接口、多态)

1.Java基本语法 对象、类 、方法、实例变量、Java修饰符、Java变量、Java枚举 2.Java类 Java Number & Math 类、Java Character 类、Java String 类,Java StringBuffer 和 StringBuild...
  • Ants_2
  • Ants_2
  • 2017-03-10 22:13
  • 193

小试Netbeans6.5中的“web应用程序的JavaMe客户端”

 久没有写博客了,这几天心情也不太好,无心做事,码点文字吧。从Eclipse换到Netbeans,是反复折腾了几回的,总在它们之间徘徊不定,不说也罢。谈谈Netbeans里的“Web应用程序的Java Me客户端”。(不好意思,因为我用的是Netbeans6.5中文版,那个7.0M1的bu...
  • sharetop
  • sharetop
  • 2009-02-18 12:19
  • 2352

JAVA分为三个体系,JavaSE,JavaEE,JavaME(J2ME)的区别以及各个版

Java 平台有三个版本,这使软件开发人员、服务提供商和设备生产商可以针对特定的市场进行开发: Java SE(Java Platform,Standard Edition)。Java SE 以前称为 J2SE。它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的 Java 应用程序...
  • xiazailushang
  • xiazailushang
  • 2012-08-18 19:39
  • 20095

JavaME UI设计之点阵字体

上一篇文章中我们介绍了在JavaME中实现Bitmap字体,但是要想通过Bitmap字体来显示中文几乎不太可能,除非你中文很少,也不介意这样做浪费时间,如果你想显示中文,又不想使用JavaME本身提供的字体,那么可以考虑使用点阵字,这就是本文将要给大家介绍的,如何在JavaME中使用点阵字库。 要...
  • alleniversoncomputer
  • alleniversoncomputer
  • 2011-11-27 11:50
  • 861

JavaME Embedded 3.3发布,支持树莓派

JavaME Embedded 3.3发布,支持树莓派作者:chszs,转载需注明。博客主页:http://blog.csdn.net/chszsOracle最近发布两个JavaME版本:一是JavaME Embedded 3.3 for Raspberry Pi (EA版);二是JavaME SD...
  • chszs
  • chszs
  • 2013-03-16 09:02
  • 4726

java2平台------javaSE、javaME、javaEE

java2平台体系:         Java2平台包括:标准版(J2SE)、企业版(J2EE)和微缩版(J2ME)三个版本。J2SE,J2ME和J2EE,这也就是SunONE(Open NetEnvironment)体系。 ...
  • shendeguang
  • shendeguang
  • 2012-11-22 19:47
  • 519

JavaME开发环境的搭建

http://zy3381.iteye.com/blog/1678860
  • baochanghong
  • baochanghong
  • 2016-05-22 21:07
  • 278
    个人资料
    • 访问:250706次
    • 积分:4456
    • 等级:
    • 排名:第7959名
    • 原创:96篇
    • 转载:325篇
    • 译文:6篇
    • 评论:76条
    博客专栏
    文章分类