4 phương thức sau của lớp Screen có thể được sử dụng để thiết lập, lấy title và ticker:› public void setTitleString title; › public String getTitle ; › public void setTickerTicker tick
Trang 2 Mô hình giao diện người dùng MIDP
Các hàm API mức cao của MIDP
› Làm việc với Screen
Trang 3 Để hiển thị ra thiết bị MIDP, cần phải có
được display của thiết bị.
Thư viện lớp display:
javax.microedition.lcdui.Display
Lớp Display cung cấp các phương thức để lấy thông tin về khả năng hiển thị của thiết bị.
Lớp display kết hợp với lớp Screen để hiển thị lên màn hình.
Trang 4 Screen tổ chức các đối tượng và xem xét việc nhập của người dùng.
Screen được trình diễn bởi đối tượng
Display bằng cách gọi phương thức
Trang 5 Tất cả các lớp giao diện người sử dụng MIDP được chứa trong gói
javax.microedition.lcdui
Gói này có 3 interface và 21 lớp
Trang 61. Choice
› Định nghĩa API cho thành phần giao diện người
dùng, hiện thực sự lựa chọn từ một số các lựa chọn
đã được định nghĩa trước.
1. CommandListener
› Được sử dụng bởi các ứng dụng mà chúng cần nhận các sự kiện từ các hiện thực.
1. ItemStateListener
› Được sử dụng bởi các ứng dụng mà chúng cần nhận các sự kiện chỉ ra các sự thay đổi trạng thái ở bên trong của các item tương tác.
Trang 71. Alert
dụng và đợi một khoảng thời gian trôi qua trước khi chuyển đến màn hình kế tiếp
Trang 97. Display
dụng trong các thiết bị nhập và hiển thị của hệ thống
Trang 10› Một tiện ích nó hiện thực một màn hình đồ họa
dạng thanh của một giá trị được sử dụng trong form.
10. Graphics
› Một tiện ích nó cung cấp một khả năng biểu diễn
hình học hai chiều.
Trang 1113. Image
13. ImageItem
các đối tượng hình ảnh được thêm vào một form hoặc một alert
có thể được thêm vào một Form hoặc một Alert
Trang 1319. TextBox
sửa văn bản
19. TextField
nó có thể được đặt vào một Form
19. Ticker
ngang qua màn hình Nó có thể được gắn vào tất cả màn hình ngoại trừ Canvas
Trang 15 Các câu hỏi đặt ra:
› Bằng cách nào có thể quản lý các màn hình?
› Di chuyển giữa chúng như thế nào?
› Làm sao quản lý các thiết bị hiển thị và nhập dữ liệu?
Trả lời:
› Tất cả các chức năng được cài đặt bởi lớp Display.
› Bao gồm các phương thức để yêu cầu sao cho các đối tượng có thể được hiển thị lên trên thiết bị, và để lấy các thuộc tính của thiết bị.
Trang 16 Tham chiếu đến màn hình thiết bị bằng cách cung cấp một tham chiếu MIDlet đến phương thức tĩnh
getDisplay( ).
› public static Display getDisplay(MIDlet c);
Việc này thường được thực hiện trong phương thức
startApp( ) của MIDlet, như sau:
› public class MyMIDlet extends MIDlet {
› Display display = null;
› public MyMIDlet( ) { // constructor
Trang 17 Sau khi tham chiếu đến màn hình hiển thị của thiết
bị, cần phải tạo ra một thành phần GUI để hiển thị
trong hai phương thức setCurrent()
› public void setCurrent(Displayable d);
› public void setCurrent(Alert alert, Displayable d);
Để xem GUI nào đang được hiển thị trên màn hình thiết
bị, sử dụng phương thức getCurrent( )
› public Displayable getCurrent( );
Các phương thức khác:
› public void boolean inColor( );
› public int numColors( );
Trang 18 Tương tác giữa người dùng và thiết bị.
Có 4 loại màn hình mức cao, được biểu diễn bởi các lớp con: TextBox, List, Alert, và
Form.
Mỗi Screen có thể có hai thành phần phụ
thêm: một tiêu đề và một ticker.
Trang 19 4 phương thức sau của lớp Screen có thể được sử dụng để thiết lập, lấy title và ticker:
› public void setTitle(String title);
› public String getTitle( );
› public void setTicker(Ticker ticker);
› public Ticker getTicker( );
Trang 20 Lớp Ticker cài đặt một mẫu văn bản mà nó chạy liên tục ngang qua màn hình.
Tạo một đối tượng Ticker:
› public Ticker(String str);
Truy xuất chuỗi được sử dụng trong ticker:
› public String getString( );
› public void setString(String s);
Khi ticker đã được tạo, nó có thể được gắn vào một màn hình bằng cách dùng phương thức
setTicker( ).
Trang 21 Ví dụ một đoạn mã tạo một màn hình List và gắn vào nó một Ticker:
› Display display = Display.getDisplay( );
› List list = new List("Trade Stocks",
Choice.EXCLUSIVE);
› list.append("Buy", null);
› list.append("Sell", null);
› list.setTicker(new Ticker("Welcome to my discount broker"));
Trang 23 Cho phép người dùng nhập và soạn thảo văn bản: tên, số điện thoại, địa chỉ mail, mật khẩu, …
Tạo một đối tượng TextBox
› public TextBox(String title, String text, int maxSize, int constraints);
Tham số constraints giới hạn việc nhập của người
dùng:
› TextField.ANY : Cho phép người dùng nhập bất kỳ kí tự nào.
› TextField.EMAILADDR : Giá trị nhập phải là một địa chỉ email.
› TextField.NUMBER : Giá trị nhập phải là một số nguyên.
› TextField.PASSWD : Văn bản nhập vào bị che không nhìn thấy được.
› TextField.PHONENUMBER : Giá trị nhập phải là một số điện thoại.
› TextField.URL : Giá trị nhập phải là một URL.
Trang 24 Muốn tạo một TextBox ràng buộc giá trị nhập là một số điện thoại và được ẩn đi?
TextBox t = new TextBox("Tel", "", 12, TextField.PHONENUMBER |
TextField.PASSWD);
Các phương thức khác
› public int getConstraints( );
› public void setConstrants(int c);
› public String getString( );
› public void setString(String s);
› public int size( );
› public void delete(int offset, int length);
› public void insert(char[] data, int offset, int length, int position);
› public void insert(String src, int position);
› public void setChars(char[] data, int offset, int length);
› public void getMaxSize()
Trang 26 Tạo một thể hiện của Alert, nó có hai
constructure như sau:
› public Alert(String title);
› public Alert(String title, String alertText, Image
alertImage, AlertType alertType);
Trang 27 Tạo ra một timed alert, các phương thức liên quan:
› public int getDefaultTimeout( );
› public int getTimeout( );
› public void setTimeout(int t);
Chuyển một timed dialog thành modal dialog:
› alert.setTimeout(Alert.FOREVER);
Phương thức 2 cho phép kết hợp một icon với alert và kiểu của nó.
Trang 28 Lớp AlertType cung cấp năm loại alert:
Trang 29 Mỗi thuộc tính trong cả 2 phương thức có các phương thức truy xuất tương ứng trong lớp Alert:
› public Image getImage( );
› public String getString( );
› public AlertType getType( );
› public void setImage(Image img);
› public void setString(String str);
› public void setType(AlertType type);
Trang 30 Ví dụ Modal Alert:
› Image im =
Image.createImage("/coffee.png");
› Alert alTest = new Alert("New Alert",
"Time for more Java", im,
AlertType.INFO);
› alTest.setTimeout(Alert.FOREVER);
Trang 31 List là một màn hình chứa các lựa chọn.
Tạo List:
› public List(String title, int listType);
› public List(String title, int listType, String[] stringElements,
Image[] imageElements);
Có 3 loại lựa chọn list, phụ thuộc đối số thứ 2:
› EXCLUSIVE: không có nhiều hơn một lựa chọn tại một thời
điểm, nó giống như một nhóm các radio button trong AWT.
› IMPLICIT: là một lựa chọn EXCLUSIVE có tiêu điểm lựa chọn là hoàn toàn được lựa chọn, rất giống với drop-down menu.
› MULTIPLE: là một danh sách nó có nhiều các lựa chọn tại một thời điểm, và biểu diễn chính nó như một chuỗi các checkbox.
Trang 32 Các phương thức:
› public int append(String stringElement, Image imageElement);
› public void insert(int index, String stringElement, Image
imageElement);
› public void set(int index, String stringElement, Image imageElement);
› public void delete(int index);
› public String getString(int index);
› public Image getImage(int index);
› public int getSelectedIndex( )
› public boolean isSelected(int index);
› public setSelectedIndex(int index, boolean selected);
› public int getSelectedFlags(boolean[] selectedArray);
› public void setSelectedFlags(boolean[] selectedArray);
Trang 34 Sử dụng Form để kết hợp nhiều thành phần vào trong một màn hình.
› public Form(String title);
› public Form(String title, Item[] items);
Ví dụ: Form form = new Form("Choose an Item");
Trang 35 Các phương thức:
› public int size( );
Trang 36 Lớp trừu tượng Item là lớp cơ sở cho tất cả các thành phần mà chúng có thể được đặt vào Form hoặc Alert.
Tất cả các đối tượng có một nhãn có thể
được truy xuất bằng cách dùng các phương thức sau:
Trang 37 Tạo ChoiceGroup
› public ChoiceGroup(String label, int choiceType);
› public ChoiceGroup(String label, int choiceType, String[] stringElements, Image[] imageElements);
Các phương thức :
› public int append(String stringElement, Image imageElement);
› public void insert(int index, String stringElement, Image imageElement);
› public void set(int index, String stringElement, Image imageElement);
› public void delete(int index);
› public String getString(int index);
› public Image getImage(int index);
› public int getSelectedIndex( )
› public boolean isSelected(int index);
› public setSelectedIndex(int index, boolean selected);
Trang 38 DateField là một thành phần có thể chỉnh sửa được để biểu diễn lịch ngày tháng và thông tin thời gian.
Tạo DateField:
TimeZone timeZone);
Trang 40 Gauge biểu diễn một thanh đồ họa trên màn hình,
có thể được sử dụng với một form
› public Gauge(String label, boolean interactive, int
maxValue, int initialValue);
› public boolean isInteractive( );
› public int getMaxValue( );
› public int getValue( );
› public void setMaxValue(int maxValue);
› public void setValue(int value);
Trang 41 Ví dụ
Gauge("Sound Level", true,
30, 4);
› Form form = new Form("");
Trang 42 ImageItem là một thành phần hình ảnh mà nó chứa một tham chiếu đến một đối tượng Image.
Lớp Image được dùng như một bộ chứa dữ liệu ảnh đồ họa.
Tạo Image
› public static Image createImage(int width, int height);
› public static Image createImage(Image image);
› public static Image createImage(String name);
› public static Image createImage(byte[] imageData, int
imageOffset, int imageLength);
Trang 43 File ảnh thường được hỗ trợ tốt có phần mở
rộng png (Portable Network Graphics).
Các phương thức:
› public int getHeight( );
› public int getWidth( );
› public boolean isMutable( );
› public Graphics getGraphics( );
ImageItem cung cấp sự điều khiển và sắp xếp khi một đối tượng image được thêm vào form
Trang 44 Để tạo một đối tượng ImageItem, hãy sử dụng constructor sau:
› public ImageItem(String label, Image img, int layout, String altText);
Tham số layout:
Trang 45 Tạo StringItem:
Các phương thức:
› public void setText(String s);
› public void setLabel(String l);
› public String getText( );
› public String getLabel( );
Trang 46 Tạo TextField:
maxSize, int constraints);
Trang 47 Các phương thức:
› public int getConstraints( );
› public void setConstrants(int c);
› public int getMaxSize( );
› public void setMaxSize(int size);
› public String getString( );
› public void setString(String s);
› public int size( );
› public void delete(int offset, int length);
› public void insert(char[] data, int offset, int length, int position);
› public void insert(String src, int position);
› public void setChars(char[] data, int offset, int length);