骑猪闯天下

J2ME随笔,记录成长的脚步

统计

留言簿(3)

阅读排行榜

评论排行榜

[J2ME-原创]画系统菜单

画菜单也很简单,也是一个坐标定位的问题

以触摸屏中实现画菜单为例,部分代码实现如下:

/**
 * 画系统菜单
 * 
 * 
@author Du Changfeng
 * @Time  2010.03.05 
 
*/

public class DrawMenu {

    
private static boolean showMenu=false
;
    
private static int menu_LineHeight = Font.getDefaultFont().getHeight() + 2
;
    
private static int menu_X = EWLScreen.SCREEN_WIDTH /2
;
    
private static int menu_Y = EWLScreen.SCREEN_HEIGHT - menu_LineHeight*7
;
    
private static int menu_Width = EWLScreen.SCREEN_WIDTH/2
;
    
private static int menu_Heigth = menu_LineHeight*7
;
    
private static int highLightLineNum = 1
 ;
    
    
/**
     * 画menu菜单
     * 当使用触摸屏时,画此
     * 当按左右软件时,显示系统菜单界面,不画这里
     
*/

    
public final void paint(Graphics g){

        g.setClip(menu_X
-1, menu_Y-1, menu_Width+1, menu_Heigth+1
);
        
        g.setColor(
0xd9d9f3
);
        g.fillRect(menu_X, menu_Y, menu_Width, menu_Heigth);
        g.setColor(
0x9f9f9f
);
        g.drawRect(menu_X
-1, menu_Y-1, menu_Width+1, menu_Heigth+1
);
        g.drawLine(menu_X
+2 , menu_Y + menu_LineHeight-2, menu_X+menu_Width-4, menu_Y + menu_LineHeight-2
);
        
        String menuStr[]
={"菜单","1    继续阅读","2    记为书签","3    快速选页","4    返回大厅","5    下一话"}
;
            
        g.setColor(
0x000000
);              
        g.setFont(Font.getFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN, Font.SIZE_SMALL));
        g.drawString(menuStr[
0], menu_X + EWLScreen.SCREEN_WIDTH/4, menu_Y-1, Graphics.HCENTER|
Graphics.TOP);
        g.drawString(menuStr[
1], menu_X+4, menu_Y+menu_LineHeight+2, Graphics.LEFT |
 Graphics.TOP);
        g.drawString(menuStr[
2], menu_X+4, menu_Y+menu_LineHeight*2+2, Graphics.LEFT |
 Graphics.TOP);
        g.drawString(menuStr[
3], menu_X+4, menu_Y+menu_LineHeight*3+2, Graphics.LEFT |
 Graphics.TOP);
        g.drawString(menuStr[
4], menu_X+4, menu_Y+menu_LineHeight*4+2, Graphics.LEFT |
 Graphics.TOP);
        g.drawString(menuStr[
5], menu_X+4, menu_Y+menu_LineHeight*5+2, Graphics.LEFT |
 Graphics.TOP);
        
        g.setColor(
0x000000
);
        g.fillRect(menu_X
+2, menu_Y+menu_LineHeight*highLightLineNum, menu_Width-4
, menu_LineHeight);
        g.setColor(
0xffffff
);
        g.drawString(menuStr[highLightLineNum], menu_X
+4
,
                menu_Y
+menu_LineHeight*highLightLineNum+2, Graphics.LEFT |
 Graphics.TOP);
    
    }

    
    
public final void pointerPressed(int x,int y){
        
if(showMenu)
{

            
if((x>menu_X && x< menu_X + menu_Width) &&

                    (y
>menu_Y+ menu_LineHeight && y<menu_Y + menu_LineHeight*2)){
                
if(highLightLineNum==1)
{
                    commandAction(continueCommand, 
this
);
                    showMenu
=false
;
                }
else{
                    highLightLineNum
=1
;
                }

            }
else if((x>menu_X && x< menu_X + menu_Width) &&
                    (y
>menu_Y + menu_LineHeight*2&& y<menu_Y + menu_LineHeight*3)){
                
if(highLightLineNum==2)
{
                    commandAction(bookmarkCommand, 
this
);
                    showMenu
=false
;
                }
else{
                    highLightLineNum
=2
;
                }

            }
else if((x>menu_X && x< menu_X + menu_Width) &&
                    (y
>menu_Y + menu_LineHeight*3 && y<menu_Y + menu_LineHeight*4)){
                
if(highLightLineNum==3)
{
                    commandAction(pageCommand, 
this
);
                    showMenu
=false
;
                }
else{
                    highLightLineNum
=3
;
                }

            }
else if((x>menu_X && x< menu_X + menu_Width) &&
                    (y
>menu_Y + menu_LineHeight*4 && y<menu_Y+ menu_LineHeight*5 )){
                
if(highLightLineNum==4)
{
                    commandAction(cancelCommand, 
this
);
                    showMenu
=false
;
                }
else{
                    highLightLineNum
=4
;
                }

            }
else if((x>menu_X && x< menu_X + menu_Width) &&
                    (y
>menu_Y + menu_LineHeight*5 && y<menu_Y + menu_LineHeight*6)){
                
if(highLightLineNum==5)
{
                    commandAction(nextCommand, 
this
);
                    showMenu
=false
;
                }
else{
                    highLightLineNum
=5
;
                }

            }

        }

    }

    
    
}

posted on 2010-03-05 13:40 骑猪闯天下 阅读(324) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航: