程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> J2ME >> JavaMe開發:低級界面繪圖之菜單(1)

JavaMe開發:低級界面繪圖之菜單(1)

編輯:J2ME

【問題描述】

手機程序中,菜單使用很普遍,JavaMe中,如何繪制菜單呢?

下面分享一下實現的菜單功能,實現效果如圖1所示:

【代碼清單】

Color.Java(借鑒 了kf156(亞日),J2ME canvas 多級菜單的實現)

  1. package com.token.vIEw.components;
  2. /**
  3. * 顏色類
  4. *
  5. * @author kf156(亞日)
  6. *
  7. * @Email [email protected]
  8. *
  9. * @CopyrightNotice 此代碼僅供學習交流,您可以使用並傳播本源代碼,但請保留作者信息。切勿商用,若有需要,請先於本人聯系。
  10. */
  11. public class Color {
  12. public static int strong = 0xFF8C00;//令牌顯示顏色
  13. public static int warning1 = 0xFF4500;// 警告顏色
  14. public static int warning2 = 0xFF0000;// 警告顏色
  15. public static int error = 0xFF0000;// 錯誤顏色
  16. public static int background = 0xF0FAE6;// 背景顏色
  17. public static int menuFrame = 0xB8E58A;// 窗體框架顏色
  18. public static int label = 0xF0F8FF;// 標題顏色
  19. public static int text = 0x314F12;// 正文顏色
  20. public static int selectText = 0xFFFFFF;// 被選擇後的正文顏色
  21. public static int selectBg = 0x548720;// 被選擇後的背景顏色
  22. public static int cmdBarTop = 0x9FDB63;// 命令欄上半部分顏色
  23. public static int cmdBarBottom = 0x81D130;// 命令欄下半部分顏色
  24. public static int menuBg = 0xE0F5CB;// 命令菜單主背景色
  25. public static int cmdSelectTop = 0x7DAB4F;// 命令菜單選中項上半部分顏色
  26. public static int cmdSelectBottom = 0x5B9422;// 命令菜單選中項下半部分顏色
  27. public static int linkClick = 0xFF0000;// 超鏈接點擊後的顏色
  28. public static int frame = 0x458B00;//邊框顏色
  29. public static int frameBg = 0x556B2F;//邊框背景顏色
  30. public static final int GREY = 0xBBBBBB;// 灰邊框
  31. public static final int BLACK = 0x0;// 黑色
  32. public static final int WHITE = 0xFFFFFF;// 白色
  33. public static final int TRANSLUCENCY_WRITE = 0x55FFFFFF;// 白色半透明
  34. public static final int TRANSLUCENCY_BLACK = 0x55000000;// 黑色半透明
  35. public static final byte STYLE_RED = 0;// 紅色
  36. public static final byte STYLE_ORANGE = 1;// 橙色
  37. public static final byte STYLE_YELLOW = 2;// 黃色
  38. public static final byte STYLE_GREEN = 3;// 綠色
  39. public static final byte STYLE_LIME = 4;// 酸橙色
  40. public static final byte STYLE_CYAN = 5;// 青色
  41. public static final byte STYLE_AQUA = 6;// 淺綠色
  42. public static final byte STYLE_SKY_BLUE = 7;// 天藍色
  43. public static final byte STYLE_BLUE = 8;// 藍色
  44. public static final byte STYLE_PURPLE = 9;// 紫色
  45. public static final byte STYLE_FUCHSIA = 10;// 紫紅色
  46. public static final byte STYLE_MAGENTA = 11;// 紅紫色
  47. public static final byte STYLE_BLACK = 12;// 黑色
  48. public static int colorName = STYLE_GREEN;// 風格名稱
  49. // 紅色風格H0(#FF0000)
  50. private static void redColor() {
  51. background = 0xFAE7E7;// 背景顏色
  52. label = 0xFAEBD7;// 標題顏色
  53. text = 0x4F1212;// 正文顏色
  54. // selectTextColor = 0xFFFFFF;// 被選擇後的正文顏色
  55. menuFrame = 0xE58A8A;// 窗體框架顏色
  56. menuBg = 0xF5CBCB;// 命令菜單主背景色
  57. selectBg = 0x872020;// 被選擇後的背景顏色
  58. cmdBarTop = 0xDB6363;// 命令欄上半部分顏色
  59. cmdBarBottom = 0xD13030;// 命令欄下半部分顏色
  60. cmdSelectTop = 0xAB4F4F;// 命令菜單選中項上半部分顏色
  61. cmdSelectBottom = 0x942222;// 命令菜單選中項下半部分顏色
  62. frame = 0xF70909;//邊框顏色
  63. frameBg = 0xD52B2B;//邊框背景顏色
  64. }
  65. // 橙色風格H30(#FF7F00)
  66. private static void orangeColor() {
  67. background = 0xFAF0E6;// 背景顏色
  68. label = 0xFFE4B5;// 標題顏色
  69. text = 0x4F3112;// 正文顏色
  70. // selectTextColor = 0xFFFFFF;// 被選擇後的正文顏色
  71. menuFrame = 0xE5B88A;// 窗體框架顏色
  72. menuBg = 0xF5E0CB;// 命令菜單主背景色
  73. selectBg = 0x875420;// 被選擇後的背景顏色
  74. cmdBarTop = 0xDB9F63;// 命令欄上半部分顏色
  75. cmdBarBottom = 0xD18130;// 命令欄下半部分顏色
  76. cmdSelectTop = 0xAB7D4F;// 命令菜單選中項上半部分顏色
  77. cmdSelectBottom = 0x945B22;// 命令菜單選中項下半部分顏色
  78. frame = 0xF76809;//邊框顏色
  79. frameBg = 0xD56F2B;//邊框背景顏色
  80. }
  81. // 黃色風格H60(#FFFF00)
  82. private static void yellowColor() {
  83. background = 0xFAFAE6;// 背景顏色
  84. label = 0xFFFACD;// 標題顏色
  85. text = 0x4F4F12;// 正文顏色
  86. // selectText = 0xFFFF00;// 被選擇後的正文顏色
  87. menuFrame = 0xE5E58A;// 窗體框架顏色
  88. menuBg = 0xF5F5CB;// 命令菜單主背景色
  89. selectBg = 0x878720;// 被選擇後的背景顏色
  90. cmdBarTop = 0xDBDB63;// 命令欄上半部分顏色
  91. cmdBarBottom = 0xD1D130;// 命令欄下半部分顏色
  92. cmdSelectTop = 0xABAB4F;// 命令菜單選中項上半部分顏色
  93. cmdSelectBottom = 0x949422;// 命令菜單選中項下半部分顏色
  94. frame = 0xF7C709;//邊框顏色
  95. frameBg = 0xD5D52B;//邊框背景顏色
  96. }
  97. // 綠色風格H90(#80FF00)
  98. private static void greenColor() {
  99. background = 0xF0FAE6;// 背景顏色
  100. label = 0xF0F8FF;// 標題顏色
  101. text = 0x314F12;// 正文顏色
  102. // selectTextColor = 0xFFFFFF;// 被選擇後的正文顏色
  103. menuFrame = 0xB8E58A;// 窗體框架顏色
  104. menuBg = 0xE0F5CB;// 命令菜單主背景色
  105. selectBg = 0x548720;// 被選擇後的背景顏色
  106. cmdBarTop = 0x9FDB63;// 命令欄上半部分顏色
  107. cmdBarBottom = 0x81D130;// 命令欄下半部分顏色
  108. cmdSelectTop = 0x7DAB4F;// 命令菜單選中項上半部分顏色
  109. cmdSelectBottom = 0x5B9422;// 命令菜單選中項下半部分顏色
  110. frame = 0x458B00;//邊框顏色
  111. frameBg = 0x556B2F;//邊框背景顏色
  112. }
  113. // 酸橙色風格H120(0x00FF00)
  114. private static void limeColor() {
  115. background = 0xE6FAE6;// 背景顏色
  116. label = 0xEEE9BF;// 標題顏色
  117. text = 0x124F12;// 正文顏色
  118. // selectTextColor = 0xFFFFFF;// 被選擇後的正文顏色
  119. menuFrame = 0x8AE58A;// 窗體框架顏色
  120. menuBg = 0xCBF5CB;// 命令菜單主背景色
  121. selectBg = 0x208720;// 被選擇後的背景顏色
  122. cmdBarTop = 0x63DB63;// 命令欄上半部分顏色
  123. cmdBarBottom = 0x30D130;// 命令欄下半部分顏色
  124. cmdSelectTop = 0x4FAB4F;// 命令菜單選中項上半部分顏色
  125. cmdSelectBottom = 0x229422;// 命令菜單選中項下半部分顏色
  126. frame = 0x09F738;//邊框顏色
  127. frameBg = 0x2BD54D;//邊框背景顏色
  128. }
  129. // 青色風格H150(0x00FF80)
  130. private static void cyanColor() {
  131. background = 0xE6FAF0;// 背景顏色
  132. label = 0xE0FFFF;// 標題顏色
  133. text = 0x124F31;// 正文顏色
  134. // selectTextColor = 0xFFFFFF;// 被選擇後的正文顏色
  135. menuFrame = 0x8AE5B8;// 窗體框架顏色
  136. menuBg = 0xCBF5E0;// 命令菜單主背景色
  137. selectBg = 0x208754;// 被選擇後的背景顏色
  138. cmdBarTop = 0x63DB9F;// 命令欄上半部分顏色
  139. cmdBarBottom = 0x30D181;// 命令欄下半部分顏色
  140. cmdSelectTop = 0x4FAB7D;// 命令菜單選中項上半部分顏色
  141. cmdSelectBottom = 0x22945B;// 命令菜單選中項下半部分顏色
  142. frame = 0x4DB34D;//邊框顏色
  143. frameBg = 0x8AB34D;//邊框背景顏色
  144. }
  145. // 淺綠色風格H180(#00FFFF)
  146. private static void aquaColor() {
  147. background = 0xE6FAFA;// 背景顏色
  148. label = 0xE0EEE0;// 標題顏色
  149. text = 0x445500;// 正文顏色
  150. // selectTextColor = 0xFFFFFF;// 被選擇後的正文顏色
  151. menuFrame = 0x88AA55;// 窗體框架顏色
  152. menuBg = 0xE6FAFA;// 命令菜單主背景色
  153. selectBg = 0xAECC33;// 被選擇後的背景顏色
  154. cmdBarTop = 0xBDE61A;// 命令欄上半部分顏色
  155. cmdBarBottom = 0xB8DD22;// 命令欄下半部分顏色
  156. cmdSelectTop = 0xB8DD22;// 命令菜單選中項上半部分顏色
  157. cmdSelectBottom = 0xB3D52B;// 命令菜單選中項下半部分顏色
  158. frame = 0x8E8E38;//邊框顏色
  159. frameBg = 0x8B8B00;//邊框背景顏色
  160. }
  161. // 天藍色風格H210(#0080FF)
  162. private static void skyBlueColor() {
  163. background = 0xE6F0FA;// 背景顏色
  164. label = 0xE0FFFF;// 標題顏色
  165. text = 0x12314F;// 正文顏色
  166. // selectTextColor = 0xFFFFFF;// 被選擇後的正文顏色
  167. menuFrame = 0x8AB8E5;// 窗體框架顏色
  168. menuBg = 0xCBE0F5;// 命令菜單主背景色
  169. selectBg = 0x205487;// 被選擇後的背景顏色
  170. cmdBarTop = 0x639FDB;// 命令欄上半部分顏色
  171. cmdBarBottom = 0x3081D1;// 命令欄下半部分顏色
  172. cmdSelectTop = 0x4F7DAB;// 命令菜單選中項上半部分顏色
  173. cmdSelectBottom = 0x225B94;// 命令菜單選中項下半部分顏色
  174. frame = 0x0997F7;//邊框顏色
  175. frameBg = 0x2BB3D5;//邊框背景顏色
  176. }
  177. // 深藍色風格H240(#0000FF)
  178. private static void blueColor() {
  179. background = 0xE6E6FA;// 背景顏色
  180. label = 0xE0EEEE;// 標題顏色
  181. text = 0x12124F;// 正文顏色
  182. // selectTextColor = 0xFFFFFF;// 被選擇後的正文顏色
  183. menuFrame = 0x8A8AE5;// 窗體框架顏色
  184. menuBg = 0xCBCBF5;// 命令菜單主背景色
  185. selectBg = 0x202087;// 被選擇後的背景顏色
  186. cmdBarTop = 0x6363DB;// 命令欄上半部分顏色
  187. cmdBarBottom = 0x3030D1;// 命令欄下半部分顏色
  188. cmdSelectTop = 0x4F4FAB;// 命令菜單選中項上半部分顏色
  189. cmdSelectBottom = 0x222294;// 命令菜單選中項下半部分顏色
  190. frame = 0x0909F7;//邊框顏色
  191. frameBg = 0x2B2BD5;//邊框背景顏色
  192. }
  193. // 紫色風格H270(#8000FF)
  194. private static void purpleColor() {
  195. background = 0xF0E6FA;// 背景顏色
  196. label = 0xFDF5E6;// 標題顏色
  197. text = 0x31124F;// 正文顏色
  198. // selectTextColor = 0xFFFFFF;// 被選擇後的正文顏色
  199. menuFrame = 0xB88AE5;// 窗體框架顏色
  200. menuBg = 0xE0CBF5;// 命令菜單主背景色
  201. selectBg = 0x542087;// 被選擇後的背景顏色
  202. cmdBarTop = 0x9F63DB;// 命令欄上半部分顏色
  203. cmdBarBottom = 0x8130D1;// 命令欄下半部分顏色
  204. cmdSelectTop = 0x7D4FAB;// 命令菜單選中項上半部分顏色
  205. cmdSelectBottom = 0x5B2294;// 命令菜單選中項下半部分顏色
  206. frame = 0x6809F7;//邊框顏色
  207. frameBg = 0x6F2BD5;//邊框背景顏色
  208. }
  209. // 紫紅色風格H300(#FF00FF)
  210. private static void fuchsiaColor() {
  211. background = 0xFAE6FA;// 背景顏色
  212. label = 0xFAF0E6;// 標題顏色
  213. text = 0x4F124F;// 正文顏色
  214. // selectTextColor = 0xFFFFFF;// 被選擇後的正文顏色
  215. menuFrame = 0xE58AE5;// 窗體框架顏色
  216. menuBg = 0xF5CBF5;// 命令菜單主背景色
  217. selectBg = 0x872087;// 被選擇後的背景顏色
  218. cmdBarTop = 0xDB63DB;// 命令欄上半部分顏色
  219. cmdBarBottom = 0xD130D1;// 命令欄下半部分顏色
  220. cmdSelectTop = 0xAB4FAB;// 命令菜單選中項上半部分顏色
  221. cmdSelectBottom = 0x942294;// 命令菜單選中項下半部分顏色
  222. frame = 0x9709F7;//邊框顏色
  223. frameBg = 0xB32BD5;//邊框背景顏色
  224. }
  225. // 紅紫色風格H330(#FF007F)
  226. private static void magentaColor() {
  227. background = 0xFAE6F0;// 背景顏色
  228. label = 0xFFEFD5;// 標題顏色
  229. text = 0x4F1231;// 正文顏色
  230. // selectTextColor = 0xFFFFFF;// 被選擇後的正文顏色
  231. menuFrame = 0xE58AB8;// 窗體框架顏色
  232. menuBg = 0xF5CBE0;// 命令菜單主背景色
  233. selectBg = 0x872054;// 被選擇後的背景顏色
  234. cmdBarTop = 0xDB639F;// 命令欄上半部分顏色
  235. cmdBarBottom = 0xD13081;// 命令欄下半部分顏色
  236. cmdSelectTop = 0xAB4F7D;// 命令菜單選中項上半部分顏色
  237. cmdSelectBottom = 0x94225B;// 命令菜單選中項下半部分顏色
  238. frame = 0xC709F7;//邊框顏色
  239. frameBg = 0xD52BD5;//邊框背景顏色
  240. }
  241. //黑色風格(#000000)
  242. private static void blackColor() {
  243. background = 0xEDEDED;// 背景顏色
  244. label = 0xEAEAEA;// 標題顏色
  245. text = 0x030303;// 正文顏色
  246. // selectTextColor = 0xFFFFFF;// 被選擇後的正文顏色
  247. menuFrame = 0x2E2E2E;// 窗體框架顏色
  248. menuBg = 0xC9C9C9;// 命令菜單主背景色
  249. selectBg = 0x4A4A4A;// 被選擇後的背景顏色
  250. cmdBarTop = 0x3B3B3B;// 命令欄上半部分顏色
  251. cmdBarBottom = 0x383838;// 命令欄下半部分顏色
  252. cmdSelectTop = 0x2E2E2E;// 命令菜單選中項上半部分顏色
  253. cmdSelectBottom = 0x0D0D0D;// 命令菜單選中項下半部分顏色
  254. frame = 0x0A0A0A;//邊框顏色
  255. frameBg = 0x636363;//邊框背景顏色
  256. }
  257. // 風格切換
  258. public static void nextColor() {
  259. set(++colorName);
  260. }
  261. /**
  262. * 設置顏色
  263. *
  264. */
  265. public static void set(int color) {
  266. // System.out.println(color);
  267. switch (color) {
  268. case STYLE_RED:// 紅色
  269. redColor();
  270. break;
  271. case STYLE_ORANGE:// 橙色
  272. orangeColor();
  273. break;
  274. case STYLE_YELLOW:// 黃色
  275. yellowColor();
  276. break;
  277. case STYLE_GREEN:// 綠色
  278. greenColor();
  279. break;
  280. case STYLE_LIME:// 酸橙色
  281. limeColor();
  282. break;
  283. case STYLE_CYAN:// 青色
  284. cyanColor();
  285. break;
  286. case STYLE_AQUA:// 淺綠色
  287. aquaColor();
  288. break;
  289. case STYLE_SKY_BLUE:// 天藍色
  290. skyBlueColor();
  291. break;
  292. case STYLE_BLUE:// 藍色
  293. blueColor();
  294. break;
  295. case STYLE_PURPLE:// 紫色
  296. purpleColor();
  297. break;
  298. case STYLE_FUCHSIA:// 紫紅色
  299. fuchsiaColor();
  300. break;
  301. case STYLE_MAGENTA:// 紅紫色
  302. magentaColor();
  303. break;
  304. case STYLE_BLACK:// 紅紫色
  305. blackColor();
  306. break;
  307. default:// 顏色循環完畢,返回紅色
  308. colorName = STYLE_RED;
  309. redColor();// RED
  310. break;
  311. }
  312. }
  313. // 設置新風格
  314. public static void setNewColor(int newColor) {
  315. background = newColor;
  316. menuFrame = background - 0x3A155D;
  317. label = background - 0x25A8E5;
  318. text = background - 0xC0ACD5;
  319. selectText = background + 0x100518;
  320. selectBg = background - 0x9D72C7;
  321. cmdBarTop = background - 0x531E84;
  322. cmdBarBottom = background - 0x742AB8;
  323. }
  324. }
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved