J2ME User Interface Architecture

|
MIDP 2.0 มี UI class อยู่ 2 package คือ javax.microedition.lcdui และ javax.microedition.lcdui.game ตามชื่อ lcd ก็คือ ui ทั้วไปส่วน game ก็คือเกม

lcdui แบ่งได้เป็น 2 กลุ่ม high-level กับ low-level, high เหมาะกับคนที่ต้องการให้โปรแกรมใช้ได้กล้าวขวาง เพราะมันไม่ได้ไปควบคุมว่าจะให้จอแสดงอะไรจริง ๆ แต่มันจะให้มือถือเป็นคนจัดการเองว่าจะแสดงผลยังไง ตามรูป

low-level ก็กำหนดไปเลยจะให้แสดงผลตำแหน่งไหน ยังไง มีแค่ 3 class

และมี GameCanvas อีกอันนึง

ถ้าเราอยากจะแสดงผล ไม่ว่า high หรือ low ต้อง implement Displayable interface

เห็นว่า Graphics ไม่ต้อง implement เพราะมันทำงาน 2-D low-level ที่ทำกับจอโดยตรงอยู่แล้ว

Displayable class จะเป็นส่วนแสดงผล มันจะมี method ให้ขอข้อมูลได้ โดย MIDlet แสดง UI โดยเรียก method ของ Display class ชื่อ setCurrent(Displayable element)

จากชื่อ method ก็น่าจะรู้ได้ Display สามารถแสดงผลได้ทีละ element โดยอันนั้นจะเป็น current สามารถเรียกถึงได้ด้วย getCurrent() จะได้ instance ของ Displayable element และมี static method ชื่อ getDisplay(MIDlet midlet) จะได้ display instance ที่อยู่กับ MIDlet นั้นๆ

import java.util.Date;

import javax.microedition.lcdui.Alert;

import javax.microedition.lcdui.Display;
import javax.microedition.midlet.MIDlet;

public class DateTimeApp extends MIDlet {

Alert timeAlert;

public DateTimeApp() {
timeAlert = new Alert("Alert!");
timeAlert.setString(new Date().toString());
}

public void startApp() {
Display.getDisplay(this).setCurrent(timeAlert);
}

public void pauseApp() {
}

public void destroyApp(boolean unconditional) {
}
}

0 ความคิดเห็น:

แสดงความคิดเห็น