【問題描述】
手機程序中,菜單使用很普遍,JavaMe中,如何繪制菜單呢?
下面分享一下實現的菜單功能,實現效果如圖1所示:
【代碼清單】
Color.Java(借鑒 了kf156(亞日),J2ME canvas 多級菜單的實現)
- package com.token.vIEw.components;
- /**
- * 顏色類
- *
- * @author kf156(亞日)
- *
- * @Email [email protected]
- *
- * @CopyrightNotice 此代碼僅供學習交流,您可以使用並傳播本源代碼,但請保留作者信息。切勿商用,若有需要,請先於本人聯系。
- */
- public class Color {
- public static int strong = 0xFF8C00;//令牌顯示顏色
- public static int warning1 = 0xFF4500;// 警告顏色
- public static int warning2 = 0xFF0000;// 警告顏色
- public static int error = 0xFF0000;// 錯誤顏色
- public static int background = 0xF0FAE6;// 背景顏色
- public static int menuFrame = 0xB8E58A;// 窗體框架顏色
- public static int label = 0xF0F8FF;// 標題顏色
- public static int text = 0x314F12;// 正文顏色
- public static int selectText = 0xFFFFFF;// 被選擇後的正文顏色
- public static int selectBg = 0x548720;// 被選擇後的背景顏色
- public static int cmdBarTop = 0x9FDB63;// 命令欄上半部分顏色
- public static int cmdBarBottom = 0x81D130;// 命令欄下半部分顏色
- public static int menuBg = 0xE0F5CB;// 命令菜單主背景色
- public static int cmdSelectTop = 0x7DAB4F;// 命令菜單選中項上半部分顏色
- public static int cmdSelectBottom = 0x5B9422;// 命令菜單選中項下半部分顏色
- public static int linkClick = 0xFF0000;// 超鏈接點擊後的顏色
- public static int frame = 0x458B00;//邊框顏色
- public static int frameBg = 0x556B2F;//邊框背景顏色
- public static final int GREY = 0xBBBBBB;// 灰邊框
- public static final int BLACK = 0x0;// 黑色
- public static final int WHITE = 0xFFFFFF;// 白色
- public static final int TRANSLUCENCY_WRITE = 0x55FFFFFF;// 白色半透明
- public static final int TRANSLUCENCY_BLACK = 0x55000000;// 黑色半透明
- public static final byte STYLE_RED = 0;// 紅色
- public static final byte STYLE_ORANGE = 1;// 橙色
- public static final byte STYLE_YELLOW = 2;// 黃色
- public static final byte STYLE_GREEN = 3;// 綠色
- public static final byte STYLE_LIME = 4;// 酸橙色
- public static final byte STYLE_CYAN = 5;// 青色
- public static final byte STYLE_AQUA = 6;// 淺綠色
- public static final byte STYLE_SKY_BLUE = 7;// 天藍色
- public static final byte STYLE_BLUE = 8;// 藍色
- public static final byte STYLE_PURPLE = 9;// 紫色
- public static final byte STYLE_FUCHSIA = 10;// 紫紅色
- public static final byte STYLE_MAGENTA = 11;// 紅紫色
- public static final byte STYLE_BLACK = 12;// 黑色
- public static int colorName = STYLE_GREEN;// 風格名稱
- // 紅色風格H0(#FF0000)
- private static void redColor() {
- background = 0xFAE7E7;// 背景顏色
- label = 0xFAEBD7;// 標題顏色
- text = 0x4F1212;// 正文顏色
- // selectTextColor = 0xFFFFFF;// 被選擇後的正文顏色
- menuFrame = 0xE58A8A;// 窗體框架顏色
- menuBg = 0xF5CBCB;// 命令菜單主背景色
- selectBg = 0x872020;// 被選擇後的背景顏色
- cmdBarTop = 0xDB6363;// 命令欄上半部分顏色
- cmdBarBottom = 0xD13030;// 命令欄下半部分顏色
- cmdSelectTop = 0xAB4F4F;// 命令菜單選中項上半部分顏色
- cmdSelectBottom = 0x942222;// 命令菜單選中項下半部分顏色
- frame = 0xF70909;//邊框顏色
- frameBg = 0xD52B2B;//邊框背景顏色
- }
- // 橙色風格H30(#FF7F00)
- private static void orangeColor() {
- background = 0xFAF0E6;// 背景顏色
- label = 0xFFE4B5;// 標題顏色
- text = 0x4F3112;// 正文顏色
- // selectTextColor = 0xFFFFFF;// 被選擇後的正文顏色
- menuFrame = 0xE5B88A;// 窗體框架顏色
- menuBg = 0xF5E0CB;// 命令菜單主背景色
- selectBg = 0x875420;// 被選擇後的背景顏色
- cmdBarTop = 0xDB9F63;// 命令欄上半部分顏色
- cmdBarBottom = 0xD18130;// 命令欄下半部分顏色
- cmdSelectTop = 0xAB7D4F;// 命令菜單選中項上半部分顏色
- cmdSelectBottom = 0x945B22;// 命令菜單選中項下半部分顏色
- frame = 0xF76809;//邊框顏色
- frameBg = 0xD56F2B;//邊框背景顏色
- }
- // 黃色風格H60(#FFFF00)
- private static void yellowColor() {
- background = 0xFAFAE6;// 背景顏色
- label = 0xFFFACD;// 標題顏色
- text = 0x4F4F12;// 正文顏色
- // selectText = 0xFFFF00;// 被選擇後的正文顏色
- menuFrame = 0xE5E58A;// 窗體框架顏色
- menuBg = 0xF5F5CB;// 命令菜單主背景色
- selectBg = 0x878720;// 被選擇後的背景顏色
- cmdBarTop = 0xDBDB63;// 命令欄上半部分顏色
- cmdBarBottom = 0xD1D130;// 命令欄下半部分顏色
- cmdSelectTop = 0xABAB4F;// 命令菜單選中項上半部分顏色
- cmdSelectBottom = 0x949422;// 命令菜單選中項下半部分顏色
- frame = 0xF7C709;//邊框顏色
- frameBg = 0xD5D52B;//邊框背景顏色
- }
- // 綠色風格H90(#80FF00)
- private static void greenColor() {
- background = 0xF0FAE6;// 背景顏色
- label = 0xF0F8FF;// 標題顏色
- text = 0x314F12;// 正文顏色
- // selectTextColor = 0xFFFFFF;// 被選擇後的正文顏色
- menuFrame = 0xB8E58A;// 窗體框架顏色
- menuBg = 0xE0F5CB;// 命令菜單主背景色
- selectBg = 0x548720;// 被選擇後的背景顏色
- cmdBarTop = 0x9FDB63;// 命令欄上半部分顏色
- cmdBarBottom = 0x81D130;// 命令欄下半部分顏色
- cmdSelectTop = 0x7DAB4F;// 命令菜單選中項上半部分顏色
- cmdSelectBottom = 0x5B9422;// 命令菜單選中項下半部分顏色
- frame = 0x458B00;//邊框顏色
- frameBg = 0x556B2F;//邊框背景顏色
- }
- // 酸橙色風格H120(0x00FF00)
- private static void limeColor() {
- background = 0xE6FAE6;// 背景顏色
- label = 0xEEE9BF;// 標題顏色
- text = 0x124F12;// 正文顏色
- // selectTextColor = 0xFFFFFF;// 被選擇後的正文顏色
- menuFrame = 0x8AE58A;// 窗體框架顏色
- menuBg = 0xCBF5CB;// 命令菜單主背景色
- selectBg = 0x208720;// 被選擇後的背景顏色
- cmdBarTop = 0x63DB63;// 命令欄上半部分顏色
- cmdBarBottom = 0x30D130;// 命令欄下半部分顏色
- cmdSelectTop = 0x4FAB4F;// 命令菜單選中項上半部分顏色
- cmdSelectBottom = 0x229422;// 命令菜單選中項下半部分顏色
- frame = 0x09F738;//邊框顏色
- frameBg = 0x2BD54D;//邊框背景顏色
- }
- // 青色風格H150(0x00FF80)
- private static void cyanColor() {
- background = 0xE6FAF0;// 背景顏色
- label = 0xE0FFFF;// 標題顏色
- text = 0x124F31;// 正文顏色
- // selectTextColor = 0xFFFFFF;// 被選擇後的正文顏色
- menuFrame = 0x8AE5B8;// 窗體框架顏色
- menuBg = 0xCBF5E0;// 命令菜單主背景色
- selectBg = 0x208754;// 被選擇後的背景顏色
- cmdBarTop = 0x63DB9F;// 命令欄上半部分顏色
- cmdBarBottom = 0x30D181;// 命令欄下半部分顏色
- cmdSelectTop = 0x4FAB7D;// 命令菜單選中項上半部分顏色
- cmdSelectBottom = 0x22945B;// 命令菜單選中項下半部分顏色
- frame = 0x4DB34D;//邊框顏色
- frameBg = 0x8AB34D;//邊框背景顏色
- }
- // 淺綠色風格H180(#00FFFF)
- private static void aquaColor() {
- background = 0xE6FAFA;// 背景顏色
- label = 0xE0EEE0;// 標題顏色
- text = 0x445500;// 正文顏色
- // selectTextColor = 0xFFFFFF;// 被選擇後的正文顏色
- menuFrame = 0x88AA55;// 窗體框架顏色
- menuBg = 0xE6FAFA;// 命令菜單主背景色
- selectBg = 0xAECC33;// 被選擇後的背景顏色
- cmdBarTop = 0xBDE61A;// 命令欄上半部分顏色
- cmdBarBottom = 0xB8DD22;// 命令欄下半部分顏色
- cmdSelectTop = 0xB8DD22;// 命令菜單選中項上半部分顏色
- cmdSelectBottom = 0xB3D52B;// 命令菜單選中項下半部分顏色
- frame = 0x8E8E38;//邊框顏色
- frameBg = 0x8B8B00;//邊框背景顏色
- }
- // 天藍色風格H210(#0080FF)
- private static void skyBlueColor() {
- background = 0xE6F0FA;// 背景顏色
- label = 0xE0FFFF;// 標題顏色
- text = 0x12314F;// 正文顏色
- // selectTextColor = 0xFFFFFF;// 被選擇後的正文顏色
- menuFrame = 0x8AB8E5;// 窗體框架顏色
- menuBg = 0xCBE0F5;// 命令菜單主背景色
- selectBg = 0x205487;// 被選擇後的背景顏色
- cmdBarTop = 0x639FDB;// 命令欄上半部分顏色
- cmdBarBottom = 0x3081D1;// 命令欄下半部分顏色
- cmdSelectTop = 0x4F7DAB;// 命令菜單選中項上半部分顏色
- cmdSelectBottom = 0x225B94;// 命令菜單選中項下半部分顏色
- frame = 0x0997F7;//邊框顏色
- frameBg = 0x2BB3D5;//邊框背景顏色
- }
- // 深藍色風格H240(#0000FF)
- private static void blueColor() {
- background = 0xE6E6FA;// 背景顏色
- label = 0xE0EEEE;// 標題顏色
- text = 0x12124F;// 正文顏色
- // selectTextColor = 0xFFFFFF;// 被選擇後的正文顏色
- menuFrame = 0x8A8AE5;// 窗體框架顏色
- menuBg = 0xCBCBF5;// 命令菜單主背景色
- selectBg = 0x202087;// 被選擇後的背景顏色
- cmdBarTop = 0x6363DB;// 命令欄上半部分顏色
- cmdBarBottom = 0x3030D1;// 命令欄下半部分顏色
- cmdSelectTop = 0x4F4FAB;// 命令菜單選中項上半部分顏色
- cmdSelectBottom = 0x222294;// 命令菜單選中項下半部分顏色
- frame = 0x0909F7;//邊框顏色
- frameBg = 0x2B2BD5;//邊框背景顏色
- }
- // 紫色風格H270(#8000FF)
- private static void purpleColor() {
- background = 0xF0E6FA;// 背景顏色
- label = 0xFDF5E6;// 標題顏色
- text = 0x31124F;// 正文顏色
- // selectTextColor = 0xFFFFFF;// 被選擇後的正文顏色
- menuFrame = 0xB88AE5;// 窗體框架顏色
- menuBg = 0xE0CBF5;// 命令菜單主背景色
- selectBg = 0x542087;// 被選擇後的背景顏色
- cmdBarTop = 0x9F63DB;// 命令欄上半部分顏色
- cmdBarBottom = 0x8130D1;// 命令欄下半部分顏色
- cmdSelectTop = 0x7D4FAB;// 命令菜單選中項上半部分顏色
- cmdSelectBottom = 0x5B2294;// 命令菜單選中項下半部分顏色
- frame = 0x6809F7;//邊框顏色
- frameBg = 0x6F2BD5;//邊框背景顏色
- }
- // 紫紅色風格H300(#FF00FF)
- private static void fuchsiaColor() {
- background = 0xFAE6FA;// 背景顏色
- label = 0xFAF0E6;// 標題顏色
- text = 0x4F124F;// 正文顏色
- // selectTextColor = 0xFFFFFF;// 被選擇後的正文顏色
- menuFrame = 0xE58AE5;// 窗體框架顏色
- menuBg = 0xF5CBF5;// 命令菜單主背景色
- selectBg = 0x872087;// 被選擇後的背景顏色
- cmdBarTop = 0xDB63DB;// 命令欄上半部分顏色
- cmdBarBottom = 0xD130D1;// 命令欄下半部分顏色
- cmdSelectTop = 0xAB4FAB;// 命令菜單選中項上半部分顏色
- cmdSelectBottom = 0x942294;// 命令菜單選中項下半部分顏色
- frame = 0x9709F7;//邊框顏色
- frameBg = 0xB32BD5;//邊框背景顏色
- }
- // 紅紫色風格H330(#FF007F)
- private static void magentaColor() {
- background = 0xFAE6F0;// 背景顏色
- label = 0xFFEFD5;// 標題顏色
- text = 0x4F1231;// 正文顏色
- // selectTextColor = 0xFFFFFF;// 被選擇後的正文顏色
- menuFrame = 0xE58AB8;// 窗體框架顏色
- menuBg = 0xF5CBE0;// 命令菜單主背景色
- selectBg = 0x872054;// 被選擇後的背景顏色
- cmdBarTop = 0xDB639F;// 命令欄上半部分顏色
- cmdBarBottom = 0xD13081;// 命令欄下半部分顏色
- cmdSelectTop = 0xAB4F7D;// 命令菜單選中項上半部分顏色
- cmdSelectBottom = 0x94225B;// 命令菜單選中項下半部分顏色
- frame = 0xC709F7;//邊框顏色
- frameBg = 0xD52BD5;//邊框背景顏色
- }
- //黑色風格(#000000)
- private static void blackColor() {
- background = 0xEDEDED;// 背景顏色
- label = 0xEAEAEA;// 標題顏色
- text = 0x030303;// 正文顏色
- // selectTextColor = 0xFFFFFF;// 被選擇後的正文顏色
- menuFrame = 0x2E2E2E;// 窗體框架顏色
- menuBg = 0xC9C9C9;// 命令菜單主背景色
- selectBg = 0x4A4A4A;// 被選擇後的背景顏色
- cmdBarTop = 0x3B3B3B;// 命令欄上半部分顏色
- cmdBarBottom = 0x383838;// 命令欄下半部分顏色
- cmdSelectTop = 0x2E2E2E;// 命令菜單選中項上半部分顏色
- cmdSelectBottom = 0x0D0D0D;// 命令菜單選中項下半部分顏色
- frame = 0x0A0A0A;//邊框顏色
- frameBg = 0x636363;//邊框背景顏色
- }
- // 風格切換
- public static void nextColor() {
- set(++colorName);
- }
- /**
- * 設置顏色
- *
- */
- public static void set(int color) {
- // System.out.println(color);
- switch (color) {
- case STYLE_RED:// 紅色
- redColor();
- break;
- case STYLE_ORANGE:// 橙色
- orangeColor();
- break;
- case STYLE_YELLOW:// 黃色
- yellowColor();
- break;
- case STYLE_GREEN:// 綠色
- greenColor();
- break;
- case STYLE_LIME:// 酸橙色
- limeColor();
- break;
- case STYLE_CYAN:// 青色
- cyanColor();
- break;
- case STYLE_AQUA:// 淺綠色
- aquaColor();
- break;
- case STYLE_SKY_BLUE:// 天藍色
- skyBlueColor();
- break;
- case STYLE_BLUE:// 藍色
- blueColor();
- break;
- case STYLE_PURPLE:// 紫色
- purpleColor();
- break;
- case STYLE_FUCHSIA:// 紫紅色
- fuchsiaColor();
- break;
- case STYLE_MAGENTA:// 紅紫色
- magentaColor();
- break;
- case STYLE_BLACK:// 紅紫色
- blackColor();
- break;
- default:// 顏色循環完畢,返回紅色
- colorName = STYLE_RED;
- redColor();// RED
- break;
- }
- }
- // 設置新風格
- public static void setNewColor(int newColor) {
- background = newColor;
- menuFrame = background - 0x3A155D;
- label = background - 0x25A8E5;
- text = background - 0xC0ACD5;
- selectText = background + 0x100518;
- selectBg = background - 0x9D72C7;
- cmdBarTop = background - 0x531E84;
- cmdBarBottom = background - 0x742AB8;
- }
- }