- Vòng đời của một MIDlet
3.2.3 Giao diện người dung A.Giao diện người dùng cấp cao
A.Giao diện người dùng cấp cao
· Đối tượng Display
Hình 2.16:Phân cấp lớp Display
Mỗi một MIDlet có một tham chiếu tới đối tượng Display, đối tượng này có thể trả về thông tin màn hình hiện thời: phạm vi màu hỗ trợ, độ phân giải…Và chứa những chức năng để truy vấn các đối tượng có thể hiển thị trên màn hình, là các đối tượng Displayable. Đối tượng Display có thể xem là bộ quản lý màn hình điều khiển những thông tin nào sẽ được hiển thị trên thiết bị và hiển thị khi nào. Mặc dù chỉ có duy nhất một đối tượng Display cho một MIDlet, nhưng có thể có nhiều đối tượng Displayable bên trong MIDlet cùng hiển thị ra màn hình.
Chúng ta thường sử dụng các phương thức sau của lớp Display:
MIDlet
Displayable getCurrent ( ) Lấy về đối tượng Displayable hiện hành void setCurrent (Alert alert, Displayable
nextDisplayable)
Hiển thị cảnh báo trên đối tượng Displayable hiện hành
void nextCurrent (Displayable nextDisplayable)
Hiển thị một đối tượng Displayable mới
boolean isColor ( ) Thiết bị có hỗ trợ màu int numColors ( ) Số màu mà thiết bị hỗ trợ
void callSerially ( ) Yêu cầu gọi đối tượng Runnable sau khi vẽ lại
ví dụ về tạo đối tượng Display cho một MIDlet:
import javax.microedition.lcdui.*; import javax.microedition.midlet.*; public class vd extends MIDlet { private Display di; private Form fr; public vd(){ di=Display.getDisplay(this); fr=new Form("vdform"); }
public void startApp(){ di.setCurrent(fr); }
public void pauseApp(){}
}
· Đối tượng Dislayable và Screen
Hình 3.17:Phân cấp lớp Displayable
Một đối tượng Displayable là một thành phần được hiển thị trên thiết bị. MIDP chứa 2 lớp con của lớp Displayablelà Screenvà Canvas.
Một đối tượng Screenkhông phải là một cái gì đó hiện ra trên thiết bị, mà lớp Screen này sẽ được thừa kế bởi các thành phần hiển thị ở mức cao, chính các thành phần này sẽ được hiển thị ra trên màn hình.
Canvas hay còn gọi là khung vẽ, là thành phần giao diện cấp thấp của J2me. Những thành phần giao diện cấp thấp như Canvas sẽ cho phép ta vẽ trực tiếp lên màn hình để tạo
có thể đưa được các đối tượng giao diện bậc cao mong muốn vào Form và xuất lên màn hình.
· Thành phần Form và Item
Một Form giống như một khung chứa, mọi thành phần giao diện mà ta muốn hiển thị ra màn hình đều nằm trong “khung chứa” này, và các phương thức của Form sẽ quyết định hiển thị các thành phần này khi nào và như thế nào.
Một Item là một thành phần giao diện có thể thêm vào Form. Nói chung Một Form chỉ đơn giản là một khung chứa các thành phần, mà mỗi thành phần được thừa kế từ lớp Item, bao gồm: ChoiceGroup, DateField, Gauge, ImageItem, StringItem, TextField.
- Form
Một Form không khác gì một cửa sổ, cửa sổ đó có cơ chế cuộn thả, có thể cất giữ bất cứ thành phần giao diện nào.
Form ban đầu được tạo ra sẽ chỉ là một cửa sổ trống, để có thể thêm các thành phần giao diện vào trong Form bạn cần dùng phương thức append của đối tượng Form, phương thức append này sẽ trả về một chỉ số báo nơi thành phần được định vị, thành phần đầu tiên được đưa vào cửa sổ sẽ có chỉ số là 0. Các thành phần giao diện sau khi được đưa vào trong Form sẽ được tự động sắp xếp theo thứ tự từ trái qua phải, từ trên xuống dưới.
Form có các phương thức để xác định số thành phần trên một Form và truy cập chỉ số (vị trí) của một thành phần nào đó hiện có trong Form. Form có những phương thức để chèn (insert), thay thế (replace) và xóa (delete) những đối tượng thành phần. Để có thể chèn, thay thế và xóa các thành phần một cách chính xác thì người lập trình cần xác định chỉ số (vị trí) của thành phần cần xóa, chèn hay thay thế.
Các API thường dùng với Form:
Phương thức Mô tả
Form (String s) Tạo Form với nhãn là s, nhãn này giống như title của Form.
mảng vào Form.
int append(Displayable d) Thêm thành phần Displayable vào Form.
void delete(int i) Xóa thành phần Displayable tại vị trí thứ i
void insert(int i1, Item i) Chèn Item i vào vị trí i String getLabel( ) Lấy về nhãn cho Item void setLabel (String s) Gán nhãn cho Item Ví dụ tạo ra một Form:
public vd(){
di=Display.getDisplay(this);
// tạo Form với nhãn là vdform
fr=new Form("vdform"); }
public void startApp(){
// hiển thị form đã được tạo ra trong phương thức khởi dựng //ngay khi ứng dụng bắt đầu hoạt động.
di.setCurrent(fr); }
public void pauseApp(){ }
public void destroyApp(boolean b){ }
}