首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> J2ME

MIDP 用戶介面設計核心概念:螢幕模型、Displayable 階層與高低階 UI 抉擇

     編輯:J2ME

為何 MIDP 採用螢幕模型?

行動裝置螢幕小、輸入法受限(鍵盤/觸控筆)、處理能力弱。MIDP 將「使用者介面」抽象為螢幕模型:每個 MIDlet 擁有一個 Display,同一時間僅顯示一個 Displayable 子類別實例。開發者只需佈局元件,捲動、焦點轉移等細節由實作廠商處理,確保跨裝置一致外觀。

Displayable 兩大分支

高階 UI (Screen)低階 UI (Canvas)
Form:表單容器,可加入 ItemCanvas:繪圖、原始鍵盤事件
List:單選/多選清單GameCanvas:雙緩衝、鍵盤狀態輪詢
TextBox:多行文字輸入自訂遊戲畫面、動畫
Alert:提示/確認對話框完全掌控像素級呈現
優點:開發快、跨平台一致優點:靈活、效能高、適合遊戲
缺點:自訂外觀受限缺點:需自行處理佈局、焦點

應用程式流程控制

Display display = Display.getDisplay(this);
// 切換螢幕
display.setCurrent(new Form("主選單"));
// Alert 顯示後自動回歸
display.setCurrent(alert, previousScreen);

事件處理模型

  • 高階事件:CommandListener.commandAction(Command, Displayable),對應選單、按鈕、軟鍵。
  • 低階事件:Canvas.keyPressed/Released/Repeated(int keyCode)、pointerPressed/Dragged/Released(x,y)。

設計決策指南

  1. 表單、設定、清單、文字輸入 → Screen。
  2. 遊戲、動畫、自訂圖表、特殊輸入 → Canvas。
  3. 混合應用:主流程用 Screen,遊戲關卡用 Canvas,display.setCurrent() 切換。

常見誤區

  • 在 Canvas.paint() 執行耗時運算 → 導致畫面凍結,應分離邏輯與繪圖。
  • 假設所有裝置支援觸控 → 需同時處理鍵盤與指標事件。
  • 忽略 sizeChanged 回調 → 翻轉螢幕或來電彈出時佈局錯亂。

結語

理解螢幕模型與高低階 UI 分工,是編寫高品質、跨裝置相容 MIDP 應用的基石。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved