Web Teknologi 3 (MKB721C) Minggu 2 Page 1 MINGGU 2 Web Teknologi 3 (MKB721C) Pokok Bahasan: –Midlet –User Interface Tujuan Instruksional Khusus: Agar mahasiswaa mengingat kembali dasar-dasar desain midlet dan user interface
Agenda Semua tentang Midlet User interface
Midlet life cycle (ch 3)
State pada Midlet: 1.Saat Midlet dijalankan, sebuah instan midlet dibuat dan dalam kondisi “Pause” 2.Midlet memasuki kondisi “Aktif” setelah manager aplikasi memanggil startApp(). 3.Saat Midlet aktif. Aplikasi manager dapat mensuspen-nya dengan memannggil pauseApp(). Midlet memasuki kondisi “Pause”. Midlet dapat memasuki kondisi “Pause dengan memanggil notifyPauses(). 4.Aplikasi manager dapat mengaktifkan Midlet yang berada pada kondisi “Pause” dengan memanggil startApp(). 5.Aplikasi manager dapat menghentikan Midlet dengan memanggil destroyApp(). Midlet dapat mengakhiri dirinya sendiri dengan memanggil notifyDestroyed().
platformRequest(String URL) public final boolean platformRequest(String URL) throws ConnectionNotFoundException Digunakan untuk memanggil web browser dengan alamat yang dipesifikasi URL. –High device: Mengembalikan nilai true Midlet dan browser berjalan secara pararel –Low Device Mengembalikan nilai false Midlet harus diterimasi sebelum me-lauch web browser URL dapat berupa no telepon (rfc2806) –tel: –fax:
Midlet paket Class & file resource yang di-“bundling” dalam jar. Jar manifest: informasi yang dibutuhkan aplikasi manager untuk menjalankan Midlet. Jad (Java Application Descriptor): informasi yang dibutuhkan aplikasi manager untuk menginstall Midlet.
Contoh jad & jar manifest
Perbedaan J2SE & CLDC (ch 4) 1.CLDC tidak mengimplementasi akses ke file lokal (java.io.*), untuk menyimpan secara persisten, digunakan javax.microedition.rms. 2.CLDC tidak mengimplementasi serialization (Serializable) 3.CLDC tidak mengimplementasi class utiliti stream. Membundling class utiliti, misalnya stringtokenizer, melanggar lisensi dan menimbulkan masalah teknis.
Api user interface (ch 5) Sumber:
Api Display Api untuk mengelola display. public void startApp() { Display d = Display.getDisplay(this); //... } Untuk pindah ke display lain. public void setCurrent(Displayable next) Untuk menampilkan alert. public void setCurrent(Alert alert, Displayable nextDisplayable)
Api Command: event handling Menambahkan event handling ke displayable object. public void addCommand(Command cmd) Menambahkan event handling ke displayable object. public void removeCommand(Command cmd) Constructor public Command(String label, int commandType, int inp_priority) commandType: OK Confirms a selection CANCEL Cancels pending changes BACK Moves the user back to a previous screen STOP Stops a running operation HELP Shows application instructions SCREEN Indicates generic type for specific application commands
Api Listener Meng-asain listener public void setListener(CommandListener l) Method action dari listener public void commandAction(Command c, Displayable s) Contoh: Command c = new Command("Exit", Command.EXIT, 0); d.addCommand(c); d.setCommandListener(new CommandListener() { public void commandAction(Command c, Displayable s) { notifyDestroyed(); } } );
Displayable object Memiliki title & optional ticker Mengganti title object displayable public void setTitle(String newTitle) Mengambil string title object displayable public String getTitle()
Api Ticker Ticker: text berjalan pada displayable object Ticker ticker = new Ticker("This is the ticker message!"); d.setTicker(ticker);
Api TextBox TextBox: input user dalam bentuk text. Constructor TextBox: public TextBox(String title, String text, int maxSize, int constraints) Contoh: myTB = new TextBox("Masukan URL", myUrl, 20, TextField.ANY);
Api Alert Alert: menyampaikan pesan. –Timed alert: menampilkan pesan untuk waktu tertentu. –Modal alert: menampilkan pesan sampai user memberikan respon. Constructor –public Alert() –public Alert(String title, String alertText, Image alertImage, AlertType alertType) Contoh: Alert alert = new Alert("Sorry", "I'm sorry, Dave...", null, null); –Timed Alert alert.setTimeout(5000); –Modal alert alert.setTimeout(Alert.FOREVER);
Api Lists (ch 6) Lists: input user dalam bentuk pilihan. –Multiple: dapat memilih lebih dari 1 pilihan. –Exclusive: hanya boleh memilih 1 pilihan. Constructor –public List(String title, int type) –public List(String title, int type, String[] stringElements, Image[] imageElements) Event handling public static final Command SELECT_COMMAND public void commandAction(Command c, Displayable s) { if (c == nextCommand) //... else if (c == List.SELECT_COMMAND) //... }
Sekilas class Image Dukungan format gambar: PNG Membuat object gambar –Immutable public static Image createImage(String name) public static Image createImage(byte[] imagedata, int imageoffset, int imagelength) public static Image createImage(InputStream stream) –Mutable public static Image createImage(int width, int height) public static Image createImage(Image image) public static Image createImage(Image image, int x, int y, int width, int height, int transform) Method class Display untuk mendapatkan ukuran terbaik –public int getBestImageHeight(int imageType); –public int getBestImageWidth(int imageType);
Contoh Lists String[] pilihanku = { "Manga", "Duku"}; … public void startApp() { … List myList = new List("Pilihanku:", List.IMPLICIT, pilihanku, null); … }
Mengelola object List Mengganti, menyisipkan dan menambahkan object: –public void set(int elementNum, String stringPart, Image imagePart) –public void insert(int elementNum, String stringPart, Image imagePart) –public int append(String stringPart, Image imagePart) Mendapatkan isi list, mengambil gambar, menghapus dan menghitung jumlah object: –public String getString(int elementNum) –public Image getImage(int elementNum) –public void delete(int elementNum) –public void deleteAll() –public int size() Mengambil List yang dipilih: –public boolean isSelected(int index) –public int getSelectedIndex() // List.MULTIPLE return -1 –public void setSelectedIndex(int index, boolean selected) –public int getSelectedFlags(boolean[] selectedArray_return) –public void setSelectedFlags(boolean[] selectedArray)
Form layout Layout render –Kiri ke kanan –Stack atas ke bawah Class Item: superclass object yang dapat ditambahkan ke form –Superclass Item Layout horizontal –LAYOUT_LEFT –LAYOUT_RIGTH –LAYOUT_CENTER Layout vertical –LAYOUT_TOP –LAYOUT_BOTTOM –LAYOUT_VCENTER Class StringItem: label berupa text Class Spacer: menentukan jarak minimum dari object item Class TextField: input string Class ImageItem: referensi ke object gambar Class DateField: input string untuk tanggal & waktu Class Gauge: object grafis batang Class ChoiceGroup: mengelompokan sejumlah item pilihan ~ Class List (slide 9, ch 5)
Review & Latihan W02 Buatlah aplikasi Java ME dari State Diagram berikut