//////////////////////////////////////////////////////////////////////////////////////////////////////////** *菜单制作,涵数*/ //要传进来的Graphics,菜单宽,菜单间隔,菜单项目数/***内部值,可以释放,方便修改*/private void drawMenu(Graphics graphics,int MenuX,int MenuY,int number){ private Graphics g; private int x,y; private int num; g=graphics; x=MenuX; y=MenuY; num=number; /***开始画咯,这里可以修改颜色,或者你设置自己的字体*g.setFont(Font.getFont(Font.FACE_SYSTEM,Font.STYLE_PLAIN,Font.SIZE_SMALL));方法都给你了*起始地址还没写,默认0,0*/ //先清屏 g.setColor(0xffffff); g.fillRect(0,0,getWidth(),getHeight()); g.setColor(0xff00ff); for(int i=0;i<num;i++){ g.drawRect(0,0+y*i,x,y); } /***传进来的菜单项目,简单点说就是有多少格,五格以上就免了,那样还要写一个更加广泛的涵数,现在没空*写上每格的字*/ g.setColor(0X333333); switch(num) { case 5:g.drawString("",0,y*5,Graphics.TOP|Graphics.LEFT); case 4:g.drawString("",0,y*4,Graphics.TOP|Graphics.LEFT); case 3:g.drawString("",0,y*3,Graphics.TOP|Graphics.LEFT); case 2:g.drawString("",0,y*2,Graphics.TOP|Graphics.LEFT); case 1:g.drawString("",0,y*1,Graphics.TOP|Graphics.LEFT); default:break; } }/**未了,最后的Graphics 应该要加上flushGraphics();如果是用GameCanvas,他是双橼冲,要这个涵数刷新*/ //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //例子 import javax.microedition.midlet.MIDlet;import javax.microedition.lcdui.*;import javax.microedition.lcdui.game.GameCanvas;import javax.microedition.lcdui.game.*; public class Menu extends MIDlet{ private DrawMenu drawmenu;//菜单类 public void startApp(){ drawmenu=new DrawMenu(Display.getDisplay(this)); } public void pauseApp(){} public void destroyApp(boolean e){ notifyDestroyed(); } class DrawMenu extends GameCanvas{private Display display; public DrawMenu(Display d){ super(true); display=d; display.setCurrent(this); Graphics g=getGraphics(); drawMenu(g,200,20,5); flushGraphics(); } } /** ***********菜单制作,涵数**************/ private void drawMenu(Graphics graphics,int MenuX,int MenuY,int number){//要传进来的Graphics,菜单宽,菜单间隔,菜单项目数/***内部值,可以释放,方便修改*/ Graphics g; int x,y; int num; g=graphics; x=MenuX; y=MenuY; num=number; /***开始画咯,这里可以修改颜色,或者你设置自己的字体*g.setFont(Font.getFont(Font.FACE_SYSTEM,Font.STYLE_PLAIN,Font.SIZE_SMALL));方法都给你了*起始地址还没写,默认0,0*/ //先清屏 g.setColor(0xffffff); g.fillRect(0,0,128,128);//我手机是128*128大小的 g.setColor(0xff00ff); for(int i=0;i<num;i++){ g.drawRect(0,0+y*i,x,y); } /***传进来的菜单项目,简单点说就是有多少格,五格以上就免了,那样还要写一个更加广泛的涵数,现在没空*写上每格的字*/ g.setColor(0X333333); switch(num) { case 5:g.drawString("2006.12.11",0,y*4,Graphics.TOP|Graphics.LEFT); case 4:g.drawString("programfan.com",0,y*3,Graphics.TOP|Graphics.LEFT); case 3:g.drawString("www.sword2008.",0,y*2,Graphics.TOP|Graphics.LEFT); case 2:g.drawString("qq14923349",0,y*1,Graphics.TOP|Graphics.LEFT); case 1:g.drawString("本程序由程序之巢",0,y*0,Graphics.TOP|Graphics.LEFT); default:break; } //flushGraphics(); } }

评论