THỰC HÀNH LẬP TRÌNH MOBILE VỚI J2ME LAB XÂY DỰNG ỨNG DỤNG GIAO DIỆN NGƯỜI DÙNG MỨC CAO A MỤC TIÊU - Tìm hiểu cơng cụ giao diện người dùng mức cao - Sử dụng giao diện người dùng mức cao J2ME để xây dựng ứng dụng - Xử lý kiện, chuyển giao diện tốn tử tính tốn B KẾT QUẢ ĐẠT ĐƯỢC - Biết vận dụng công cụ để xây dựng ứng dụng - Có thể xây dựng ứng dụng thông qua công cụ hỗ trợ Netbean C KIẾN THỨC LÝ THUYẾT Các công cụ hộ trợ lập trình giao diện người dùng bậc cao - Mơ hình GUI: - Để hiển thị thiết bị MIDP, cần phải có display thiết bị Thư viện lớp display: javax.microedition.lcdui.display KS Thái Duy Quý - quytd@dlu.edu.vn , thaiduyquy@gmail.com THỰC HÀNH LẬP TRÌNH MOBILE VỚI J2ME - Screen tổ chức đối tượng xem xét việc nhập người dùng Screen trình diễn đối tượng Display cách gọi phương thức setCurrent() Thư viện lớp Screen: javax.microedition.lcdui.Screen - Các Interface cho GUI: o Choice: Định nghĩa API cho thành phần giao diện người dùng, thực lựa chọn từ số lựa chọn định nghĩa trước o CommandListener: Được sử dụng ứng dụng mà chúng cần nhận kiện từ thực o ItemStateListener: Được sử dụng ứng dụng mà chúng cần nhận kiện thay đổi trạng thái bên item tương tác - Các lớp GUI: o Alert: Một hình biểu diễn liệu cho người sử dụng đợi khoảng thời gian trơi qua trước chuyển đến hình o AlertType: Một lớp tiện ích chất alert o Canvas: Lớp sở cho việc viết ứng dụng cần xử lý kiện mức thấp sử dụng đồ họa o ChoiceGroup: Một nhóm thành phần phần chọn dùng để đặt vào Form o Command:Một cấu trúc đóng gói thơng tin ngữ nghĩa mơt hành động o DateField: Một thành phần chỉnh sửa dùng để biểu diễn thông tin lịch thời gian dùng để đặt vào Form o Display: Một tiện ích đại diện cho trình quản lý ứng dụng thiết bị nhập hiển thị hệ thống o Displayable: Một đối tượng có khả thay hình o Font: Một tiện ích đại diện cho font font metric o Form: Một hình hình mà chứa mục hỗn hợp bất kỳ(hình ảnh, text field, choice group, …) KS Thái Duy Quý - quytd@dlu.edu.vn , thaiduyquy@gmail.com THỰC HÀNH LẬP TRÌNH MOBILE VỚI J2ME o Gauge: Một tiện ích thực hình đồ họa dạng âm giá trị sử dụng form o Graphics: Một tiện ích cung cấp khả biểu diễn hình học hai chiều o Image: Một tiện ích chứa liệu hình ảnh o ImageItem: Một tiện ích cung cấp điều khiển xếp đối tượng hình ảnh thêm vào form alert o Item: Một lớp cha tất thành phần mà thêm vào Form Alert o List: Một hình mà chứa danh sách lựa chọn o Screen: Một lớp cha tất lớp giao diện người sử dụng mức cao o StringItem: Một mục mà chứa String o TextBox: Một hình mà cho phép nhập chỉnh sửa văn o TextField: Một thành phần văn chỉnh sửa đặt vào Form o Ticker: Một Ticker mẫu văn chạy liên tục ngang qua hình Nó gắn vào tất hình ngoại trừ Canvas Luyện tập cơng cụ: - Display: public class MyMIDlet extends MIDlet { Display display = null; public MyMIDlet( ) { // constructor } public void startApp( ) { display = Display.getDisplay(this); } KS Thái Duy Quý - quytd@dlu.edu.vn , thaiduyquy@gmail.com THỰC HÀNH LẬP TRÌNH MOBILE VỚI J2ME // other methods } - 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")); display.setCurrent(list); - TextBox: TextBox tb = new TextBox("TextBox", "This is a textbox", 20, TextField.ANY); Display display = Display.getDisplay(this); display.setCurrent(tb); Các tham số tương ứng: – TextField.ANY: Cho phép người dùng nhập kí tự – TextField.EMAILADDR: Giá trị nhập phải địa email – TextField.NUMBER: Giá trị nhập phải số nguyên – TextField.PASSWD: Văn nhập vào bị che khơng nhìn thấy – TextField.PHONENUMBER: Giá trị nhập phải số điện thoại – TextField.URL: Giá trị nhập phải URL - Alert: Image img = Image.createImage("/baochau.png"); Alert alTest = new Alert("New Alert", “Thái Trần Bảo Châu", img, AlertType.INFO); KS Thái Duy Quý - quytd@dlu.edu.vn , thaiduyquy@gmail.com THỰC HÀNH LẬP TRÌNH MOBILE VỚI J2ME alTest.setTimeout(Alert.FOREVER); Các tham số Alert: – AlertType.ALARM – AlertType.CONFIRMATION – AlertType.ERROR – AlertType.INFO – AlertType.WARNING - List Image images[] = { Image.createImage("/coffee.png"), Image.createImage("/check.png"), Image.createImage("/coffee.png") }; String options[] = {" Next", " Previous", " New"}; list = new List("Document Option:", List.IMPLICIT, options, images); ̣ - Các phương thức Form: o public int append(Image img); o public int append(Item item); o public int append(String str); o public void delete(int itemNum): o public Item get(int itemNum); o public void insert(int itemNum, Item item); o public int size( ); - Các phương thức Choigroup: – public ChoiceGroup(String label, int choiceType); – public ChoiceGroup(String label, int choiceType, String[] stringElements, Image[] imageElements); KS Thái Duy Quý - quytd@dlu.edu.vn , thaiduyquy@gmail.com THỰC HÀNH LẬP TRÌNH MOBILE VỚI J2ME – 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); - DateField: DateField date = new DateField("Today's date", DateField.DATE); Form form = new Form("Date Info"); form.append(date); Gauge Gauge gaVolume = new Gauge("Sound Level", true, 30, 4); Form form = new Form(""); form.append(gaVolume); - Các phương thức TextFiled: o public int getConstraints( ); o public void setConstrants(int c); o public int getMaxSize( ); o public void setMaxSize(int size); KS Thái Duy Quý - quytd@dlu.edu.vn , thaiduyquy@gmail.com THỰC HÀNH LẬP TRÌNH MOBILE VỚI J2ME o public String getString( ); o public void setString(String s); o public int size( ); o public void delete(int offset, int length); o public void insert(char[] data, int offset, int length, int position); o public void insert(String src, int position); o public void setChars(char[] data, int offset, int length); o public int getCaretPosition( ); - Ví dụ kiện: class CMidlet extend Midlet implements CommandListener { private Form fmMain; // Form private Command cmExit; // Command to exit the MIDlet fmMain = new Form("Core J2ME"); // Create Form and give it a title //Create Command object, with label, type and priority cmExit = new Command("Exit", Command.EXIT, 1); fmMain.addCommand(cmExit); // Add Command to Form fmMain.setCommandListener(this); // Listen for Form events public void commandAction(Command c, Displayable s) { if (c == cmExit) { destroyApp(true); notifyDestroyed(); } } KS Thái Duy Quý - quytd@dlu.edu.vn , thaiduyquy@gmail.com THỰC HÀNH LẬP TRÌNH MOBILE VỚI J2ME D BÀI TẬP Bài 1: Viết chương trình minh họa hiển thị hình: - TextBox, - Alert - List - Form Item TextField, Image, Gauge, Ticker, … Bài 2: Viết chương trình cho phép nhập kiểm tra số điện thoại Thêm xử lý nút lệnh Exit để thoát ứng dụng Bài 3: Viết chương trình hiển thị lựa chọn (List) thành phần: New Game, Settings, High Scores, Help, About hiển thị tới form tương ứng chọn Chương trình hiễn thị lên hình vẽ sau: Bài 4: Viết ứng dụng tổng hợp theo yêu cầu sau Tên ứng dụng: ExtraApp Các chức ứng dụng: Màn hình chờ Màn hình chờ hình ảnh, chờ khoảng 3s tắt Sau hình chờ tắt, chức sau lên cho người dùng chọn: Máy tính tốn - Chức máy tính tốn cho phép thực phép tốn máy tính KS Thái Duy Quý - quytd@dlu.edu.vn , thaiduyquy@gmail.com THỰC HÀNH LẬP TRÌNH MOBILE VỚI J2ME - Các phép toán thức hiện: +, -, *, / - Các phép mở rộng: Khai căn, tính sin, cos, tan, cotan, arcsin, pow, ln, exp Đổi đơn vị - Chức cho phép đổi đơn vị độ dài sau: o Centimeters o Inches o Feet o Yard o Meters o Chains o Kilometers o Miles - Chức cho phép đổi đơn vị nhiệt độ Đổi năm dương qua năm âm theo tài liệu kèm Chức cho phép đổi năm dương qua năm âm, tài liệu kèm Giúp đỡ - Chức giới thiệu cách sử dụng chức chương trình Tác giả - Chức giới thiệu tác giả Thoát - Thoát ứng dụng Yêu cầu: - Thực chức đầy đủ - Giao diện đẹp tốt - Biên dịch thành file jar cho chạy thử nghiệm điện thoại thật Chú ý: Cho phép sử dụng Internet để tìm hiểu tài liệu liên quan E ĐÁNH GIÁ KẾT QUẢ - Sinh viên thực hành lab với thời gian tiết - Sinh viên thực điện thoại giả lập, so sánh đánh giá kết - Sinh viên nên copy qua điện thoại thật chạy thử ứng dụng KS Thái Duy Quý - quytd@dlu.edu.vn , thaiduyquy@gmail.com ... trị sử dụng form o Graphics: Một tiện ích cung cấp khả biểu diễn hình học hai chiều o Image: Một tiện ích chứa liệu hình ảnh o ImageItem: Một tiện ích cung cấp điều khiển xếp đối tượng hình ảnh... Form Alert o List: Một hình mà chứa danh sách lựa chọn o Screen: Một lớp cha tất lớp giao diện người sử dụng mức cao o StringItem: Một mục mà chứa String o TextBox: Một hình mà cho phép nhập chỉnh... int size( ); - Các phương thức Choigroup: – public ChoiceGroup(String label, int choiceType); – public ChoiceGroup(String label, int choiceType, String[] stringElements, Image[] imageElements);