/////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
*菜单制作,涵数
*/
//要传进来的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();
}
}
评论