Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
1
Struktur Kode Program MIDlet
As’ad Djamalilleil
2
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*; public class NamaClass extends MIDlet { public NamaClass() { } public void startApp(){ public void pauseApp(){ public void destroyApp(boolean unconditional){
3
import javax.microedition.midlet.*;
paket midlet harus diimport karena berisi class MIDlet yang diperlukan untuk membuat aplikasi midlet import javax.microedition.lcdui.*; paket lcdui digunakan untuk pemrosesan macam2 komponen user interface public class NamaClass extends MIDlet class yg dibuat harus meng-extends class MIDlet
4
public NamaClass() { } konstruktor dari class ini public void startApp(){ fungsi ini dijalankan pada saat aplikasi ini dimulai
5
public void pauseApp(){
} fungsi ini dijalankan pada saat aplikasi di-minimize public void destroyApp(boolean unconditional){ fungsi ini dijalankan pada saat aplikasi dihentikan
6
Siklus MIDlet
7
As’ad Djamalilleil http://kampusku.uni.me asad.kom@gmail.com
MIDlet User Interface As’ad Djamalilleil
8
Sekilas User Interface
Perangkat mobile hanya dapat menampilkan satu window pada satu waktu Kemampuan berpindah dari satu window ke window yang lain harus diprogram dengan menambahkan komponen UI tertentu agar memungkinkan user untuk melakukan hal tersebut
9
Paket User Interface Library User Interface (UI) pada MIDlet diimplementasikan ke dalam paket javax.microedition.lcdui.* Paket tersebut berisi beberapa class yang dapat digunakan untuk mengatur tampilan dan manajemen window
10
Class Display dan Displayable
Class Display mewakili layar pada perangkat dimana MIDlet dapat menampilkan user interface-nya Kita dapat memperoleh referensi dari layar tersebut lewat metode getDisplay() public static Display getDisplay(MIDlet midlet)
11
Setiap MIDlet memiliki objek Display tersendiri yang bersifat unik, jadi metode getDisplay() mengembalikan nilai yang sama setiap kali dipanggil Jadi disarankan untuk menyimpan referensi objek Display ke dalam sebuah variabel daripada memanggil metode tersebut berulang-ulang
12
Sebuah objek Displayable tidak terlihat oleh user sampai objek tersebut dihubungkan dengan objek Display MIDlet tersebut menggunakan metode setCurrent() pada class Display public void setCurrent(Displayable displayable) Atau objek Displayable yang sedang terhubung dengan objek Display dapat diperoleh dengan memanggil metode getCurrent()
13
public Displayable getCurrent()
Setiap layar dimana MIDlet diperlukan untuk ditampilkan, dapat dibangun dengan menempelkan komponen user interface (diistilahkan dengan items) atau gambar ke level teratas pada window yang berasal dari class abstrak Displayable Sebuah MIDlet dapat diketahui apakah objek Displayable dapat dilihat oleh user dengan memanggil metode isShown(), dimana merupakan satu diantara empat metode dalam class Displayable
14
public abstract class Displayable {
public boolean isShown(); public void addCommand( Command cmd); public void removeCommand( public void setCommandListener( CommandListener l); }
15
Metode isShown() mengembalikan nilai true hanya jika objek Displayable dapat terlihat oleh user, dimana objek tersebut harus merupakan objek Displayable yang tampil pada saat ini dari objek Display MIDlet yang aktif
16
High-Level & Low-Level API
Top-level user interface classes
17
Ada 2 class yang merupakan turunan langsung dari class Displayable, dimana merupakan titik awal dari 2 macam gaya pemrograman user interface yang didukung oleh paket javax.microedition.lcdui
18
Class Canvas Class Canvas merupakan dasar dari low-level GUI API
Untuk membuat user interface menggunakan low-level API, kita harus membuat subclass dari Canvas dan mengimplementasi metode paint() untuk menggambar langsung pada layar
19
Class Screen Class Screen merupakan class dasar dari pemrograman high-level API Tidak seperti Canvas, tidak perlu untuk membuat subclass dari class Screen untuk membuat user interface MIDlet Class Screen dapat menampilkan titel berupa string atau pesan berupa scrolling-text/ticker
20
Class Form merupakan subclass dari Screen yang biasa digunakan untuk membangun user interface dengan menambahkan komponen standard (yang dikenal dengan items) Class List, TextBox dan Alert merupakan subclass lainnya yang sama dengan komponen dialog
21
Low-level dan high-level API dapat digunakan dalam satu MIDlet
Tetapi tidak dapat digunakan dalam satu layar
22
High-Level User Interface API
23
Class TextBox TextBox adalah komponen yang digunakan untuk menampilkan dan memodifikasi teks TextBox ditampilkan memenuhi satu layar MIDlet dikarenakan class TextBox merupakan turunan atau berasal dari class Screen, sehingga mampu mengakomodasi teks dalam ukuran yang relatif besar dalam beberapa baris
24
TextBox dapat dibuat lewat konstruktor berikut
public TextBox(String title, String text, int maxSize, int constraints) title judul yang tampil di atas textbox, dapat diberikan nilai null jika tidak ingin menampilkan judul text teks yang tampil pertama kali di dalam textbox maxSize panjang maksimum karakter yang dapat tampil pada textbox, dapat diketahui dengan memanggil metode getMaxSize() constraints batasan tipe konten atau apa yang boleh diketik di dalam textbox
25
Argumen constraint akan dibahas lebih lanjut pada materi yang membahas tentang class TextField
TextBox mewarisi kemampuan untuk menampilkan sebuah judul dari superclass-nya yaitu class Screen
26
Aplikasi Demo TextBox 1 //deklarasi class yang diperlukan
import java.io.InputStream; import java.io.InputStreamReader; import java.io.IOException; import javax.microedition.lcdui.Display; import javax.microedition.lcdui.TextBox; import javax.microedition.lcdui.TextField; import javax.microedition.lcdui.Ticker; import javax.microedition.midlet.MIDlet; public class IsiTeks extends MIDlet { private TextBox isi; // textbox-nya private Display layar; // siapkan layar
27
public IsiTeks() { layar = Display.getDisplay(this); } public void startApp() { // membuat textbox isi = new TextBox( "Judul dari textbox", "Teks ini tampil di dalam textbox", 255, TextField.ANY); // menjadikan textbox sebagai layar utama layar.setCurrent(isi);
28
public void pauseApp() {
} public void destroyApp(boolean unconditional) {
29
Metode static getDisplay() dari dalam class Display mendapatkan objek Display untuk MIDlet.
Kata kunci “this” merujuk kepada objek dari MIDlet yang sedang dijalankan Kebanyakan MIDlet menyimpan referensi dari objek Display ke dalam variabel instance sehingga pemanggilan metode getDisplay() hanya dilakukan satu kali saja Agar textbox dapat terlihat, metode setCurrent() pada class Display digunakan dengan referensi textbox dijadikan sebagai argumen
30
Aplikasi Demo TextBox 2 import java.io.*;
import javax.microedition.lcdui.*; import javax.microedition.midlet.*; public class IsiTeks extends MIDlet { private TextBox isi; private Display layar; public IsiTeks() { layar = Display.getDisplay(this); }
31
public void startApp() {
//textbox kosong isi = new TextBox(null, null, 255, 0); layar.setCurrent(isi); //ganti judul isi.setTitle("Coba lagi"); //ganti isi isi.setString("Isi dari textbox"); //ganti ukuran isi.setMaxSize(10); //batasan isi.setConstraints(TextField.ANY); }
32
public void pauseApp() {
} public void destroyApp(boolean unconditional) {
33
Aplikasi Demo TextBox 3 import java.io.*;
import javax.microedition.lcdui.*; import javax.microedition.midlet.*; public class IsiTeks extends MIDlet { // panjang maksimum teks // yang tampil pada textbox private static final int PJG_MAKS = 255; private TextBox isifile; private Display layar;
34
// variabel utk mengecek status aplikasi
public boolean dimulai; public IsiTeks(){ // menjadikan textbox sebagai layar utama layar = Display.getDisplay(this); } public void pauseApp() { public void destroyApp(boolean unconditional) {
35
public void startApp() {
if (!dimulai) { String isi = null; try { InputStream is = getClass(). getResourceAsStream("Biodata.txt"); InputStreamReader isr = new InputStreamReader(is); char[] buffer = new char[32]; StringBuffer sb = new StringBuffer(); int jumlah; while ((jumlah = isr. read(buffer, 0, buffer.length)) > -1) sb.append(buffer, 0, jumlah); isi = sb.toString( ); } catch (IOException ex) { isi = "Gagal membaca isi file"; }
36
// membuat textbox isifile = new TextBox("Contoh TextBox", isi, PJG_MAKS, TextField.ANY); // membuat ticker/scrolling text Ticker ticker = new Ticker("Contoh Scrolling Text"); isifile.setTicker(ticker); layar.setCurrent(isifile); dimulai = true; } Catatan: buat dahulu sebuah file teks dengan nama “Biodata.txt” dengan isi tidak lebih dari 255 karakter dan simpan pada folder “res”
37
public InputStream getResourceAsStream( String name); name
Class java.lang.Class menyediakan implementasi dari metode getResourceAsStream() public InputStream getResourceAsStream( String name); name nama dari file yang akan dibaca Dengan memberikan nama dari sebuah sumber daya/resource, metode ini akan memberikan sebuah objek InputStream yang dapat digunakan untuk membaca isi dari resource tersebut Untuk menggunakan metode ini diperlukan objek Class dimana metode tersebut dijalankan dan membentuk nama dari resource
38
Definisi Class Screen Berikut adalah definisi class Screen
public abstract class Screen extends Displayable { public Ticker getTicker(); public String getTitle(); public void setTicker( Ticker ticker); public void setTitle( String title); }
39
setTitle() setTicker() getTitle() getTicker()
mengubah judul pada textbox setTicker() menambahkan ticker pada textbox getTitle() membaca judul pada textbox getTicker() Mendapatkan objek ticker dari sebuah textbox Jadi, dari objek TextBox kita dapat merubah atribut dari textbox tersebut dengan memanfaatkan metode-metode di atas
40
Class Ticker Berikut adalah definisi class Ticker
public class Ticker { public Ticker(String str); public String getString( ); public void setString( String str); }
41
Sebuah ticker dapat dihubungkan dengan lebih dari satu objek Screen pada saat bersamaan.
Fitur ini sangat bermanfaat karena bukan hanya menghemat sumber daya tetapi juga dikarenakan perubahan yang dilakukan pada ticker dengan memanggil metode setString() berpengaruh pada saat itu juga pada semua objek Screen dimana ticker tersebut berada.
42
Aplikasi Demo Ticker 1 import java.io.*;
import javax.microedition.lcdui.*; import javax.microedition.midlet.*; public class TeksJalan extends MIDlet { public Ticker teks; public TextBox isi; public Display layar; public TeksJalan() { layar = Display.getDisplay(this); }
43
public void startApp() {
teks = new Ticker("Tulisan ini berjalan"); isi = new TextBox("Textbox ditambah ticker", null, 255, 0); isi.setTicker(teks); layar.setCurrent(isi); } public void pauseApp() { public void destroyApp(boolean unconditional) {
44
Aplikasi Demo Ticker 2 import java.io.*;
import javax.microedition.lcdui.*; import javax.microedition.midlet.*; public class TeksJalan extends MIDlet { private Ticker teks; private Alert pesan; private Display layar; public TeksJalan() { layar = Display.getDisplay(this); }
45
public void startApp() {
teks = new Ticker("Tulisan ini berjalan"); pesan = new Alert("Contoh kotak pesan", "Ini isi pesannya", null, null); pesan.setTimeout(5000); pesan.setTicker(teks); layar.setCurrent(pesan); } public void pauseApp(){ public void destroyApp(boolean unconditional) { }
46
Tugas 2 Buatlah sebuah aplikasi MIDlet yang dapat membaca isi dari sebuah file teks dan menampilkannya ke sebuah ticker File tersebut hanya berisi satu baris tulisan yaitu NIM dan nama Ticker ditampilkan di atas sebuah kotak Alert selama 10 detik Di-upload paling lambat 2 minggu kemudian
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.