PERTEMUAN 12
WIRELESS JAVA PROGRAMMING
WITH JAVA 2 MICRO EDITION (J2ME)
A. Percobaan menampilkan Form
import javax.microedition.midlet.*; import javax.microedition.lcdui.*;
public class Midlet01 extends MIDlet { private Display display;
private Form form;
public Midlet01() {
form = new Form("MIDLET 01"); }
protected void startApp() {
display = Display.getDisplay(this); display.setCurrent(form);
}
protected void pauseApp() {}
protected void destroyApp(boolean unconditional) { notifyDestroyed(); } } B. Percobaan menampilkan Form dengan item import javax.microedition.midlet.*; import javax.microedition.lcdui.*;
public class Midlet01 extends MIDlet { private Display display;
private Form form;
form = new Form("MIDLET 01");
form.append("Aplikasi Midlet Pertama\n"); form.append("Universitas Gadjah Mada"); }
protected void startApp() {
display = Display.getDisplay(this); display.setCurrent(form);
}
protected void pauseApp() {}
protected void destroyApp(boolean unconditional) { notifyDestroyed(); } } C. Percobaan menampilkan TextField import javax.microedition.midlet.*; import javax.microedition.lcdui.*;
public class Midlet02 extends MIDlet { private Display display;
private Form form;
private TextField tf_nama, tf_tlp;
public Midlet02() {
form = new Form("MIDLET 02");
tf_nama = new TextField("Username", "", 10, TextField.ANY); tf_tlp = new TextField("Password", "", 10,
TextField.PASSWORD);
form.append(tf_nama); form.append(tf_tlp); }
protected void startApp() {
display.setCurrent(form); }
protected void pauseApp() {}
protected void destroyApp(boolean unconditional) { notifyDestroyed(); } } D. Percobaan menampilkan DateField import javax.microedition.midlet.*; import javax.microedition.lcdui.*;
public class Midlet03 extends MIDlet { private Display display;
private Form form;
private DateField df_tgl, df_jam;
public Midlet03() {
form = new Form("MIDLET 03");
df_tgl = new DateField("Tanggal", DateField.DATE); df_jam = new DateField("Jam", DateField.TIME); form.append(df_tgl);
form.append(df_jam); }
protected void startApp() {
display = Display.getDisplay(this); display.setCurrent(form);
}
protected void pauseApp() {}
protected void destroyApp(boolean unconditional) { notifyDestroyed();
} }
E. Percobaan menampilkan Command
import javax.microedition.midlet.*; import javax.microedition.lcdui.*;
public class Midlet03 extends MIDlet { private Display display;
private Form form;
private DateField df_tgl, df_jam; private Command cmd_klr;
public Midlet03() {
form = new Form("MIDLET 03");
df_tgl = new DateField("Tanggal", DateField.DATE); df_jam = new DateField("Jam", DateField.TIME); cmd_klr = new Command("Keluar", Command.EXIT, 0); form.append(df_tgl);
form.append(df_jam); form.addCommand(cmd_klr); }
protected void startApp() {
display = Display.getDisplay(this); display.setCurrent(form);
}
protected void pauseApp() {}
protected void destroyApp(boolean unconditional) { notifyDestroyed(); } } F. Percobaan menampilkan Command dengan Event Handler import javax.microedition.midlet.*; import javax.microedition.lcdui.*;
private Display display; private Form form;
private DateField df_tgl, df_jam; private Command cmd_klr;
public Midlet04() {
form = new Form("MIDLET 04");
df_tgl = new DateField("Tanggal", DateField.DATE); df_jam = new DateField("Jam", DateField.TIME); cmd_klr = new Command("Keluar", Command.EXIT, 0); form.append(df_tgl);
form.append(df_jam); form.addCommand(cmd_klr); form.setCommandListener(this); }
protected void startApp() {
display = Display.getDisplay(this); display.setCurrent(form);
}
protected void pauseApp() {}
protected void destroyApp(boolean unconditional) { notifyDestroyed();
}
public void commandAction(Command c, Displayable d) { if (c == cmd_klr) { destroyApp(true); } } } G. Percobaan menampilkan Menu import javax.microedition.midlet.*; import javax.microedition.lcdui.*;
public class Midlet05 extends MIDlet { private Display display;
private List menu;
private String[] menu_str = {"New Game", "Loading", "High Score", "Instructions", "About", "Exit"};
public Midlet05() {
menu = new List("Game Menu", List.IMPLICIT, menu_str, null); }
protected void startApp() {
display = Display.getDisplay(this); display.setCurrent(menu);
}
protected void pauseApp() {}
protected void destroyApp(boolean unconditional) { notifyDestroyed(); } } H. Percobaan menampilkan Menu dengan Event Handler import javax.microedition.midlet.*; import javax.microedition.lcdui.*;
public class Midlet05 extends MIDlet implements CommandListener { private Display display;
private Alert alert = new Alert("Info"); private List menu;
private String[] menu_str = {"New Game", "Loading", "High Score", "Instructions", "About", "Exit"};
public Midlet05() {
menu = new List("Game Menu", List.IMPLICIT, menu_str, null); menu.setCommandListener(this);
}
display = Display.getDisplay(this); display.setCurrent(menu);
}
protected void pauseApp() {}
protected void destroyApp(boolean unconditional) { notifyDestroyed();
}
public void commandAction(Command c, Displayable d) { switch (menu.getSelectedIndex()) { case 0: alert.setString(menu_str[0]); break; case 1: alert.setString(menu_str[1]); break; case 2: alert.setString(menu_str[2]); break; case 3: alert.setString(menu_str[3]); break; case 4: alert.setString(menu_str[4]); break; case 5: destroyApp(true); break; } display.setCurrent(alert); } } I. Percobaan menampilkan Ticker import javax.microedition.midlet.*; import javax.microedition.lcdui.*;
public class Midlet05 extends MIDlet implements CommandListener { private Display display;
private Ticker ticker = new Ticker("Game Midlet"); private Alert alert = new Alert("Info");
private List menu;
private String[] menu_str = {"New Game", "Loading", "High Score", "Instructions", "About", "Exit"};
public Midlet05() {
menu = new List("Game Menu", List.IMPLICIT, menu_str, null); menu.setTicker(ticker);
menu.setCommandListener(this); }
protected void startApp() {
display = Display.getDisplay(this); display.setCurrent(menu);
}
protected void pauseApp() {}
protected void destroyApp(boolean unconditional) { notifyDestroyed();
}
public void commandAction(Command c, Displayable d) { switch (menu.getSelectedIndex()) { case 0: alert.setString(menu_str[0]); case 5: destroyApp(true); break; } display.setCurrent(alert); } } J. Percobaan menampilkan TextBox import javax.microedition.midlet.*; import javax.microedition.lcdui.*;
public class Midlet06 extends MIDlet { private Display display;
private TextBox tbox;
public Midlet06() {
tbox = new TextBox("pesan", "", 160, TextField.ANY); }
protected void startApp() {
display = Display.getDisplay(this); display.setCurrent(tbox);
}
protected void pauseApp() {}
protected void destroyApp(boolean unconditional) { notifyDestroyed(); } } K. Percobaan menggambar menggunakan Canvas import javax.microedition.lcdui.*;
class Media extends Canvas implements CommandListener { private Midlet07 m;
private Command cmd_klr;
private int lbr_canvas, tg_canvas;
public Media(Midlet07 m) { this.m = m;
lbr_canvas = getWidth(); tg_canvas = getHeight();
cmd_klr = new Command("Keluar", Command.EXIT, 0); addCommand(cmd_klr);
setCommandListener(this); }
public void paint(Graphics g) { g.setColor(255, 255, 255);
g.setColor(0, 0, 0); g.fillArc(0, 5, 20, 20, 0, 360); g.fillArc(25, 5, 20, 20, 0, 180); g.fillArc(50, 5, 20, 20, 180, 180); g.fillArc(75, 5, 20, 20, 90, 180); g.fillArc(80, 5, 20, 20, 270, 180); g.fillArc(105, 5, 20, 20, 35, 290); g.fillArc(130, 5, 20, 20, 215, 290); g.fillArc(155, 5, 20, 20, 305, 290); }
public void commandAction(Command c, Displayable d) { if (c == cmd_klr) { m.destroyApp(true); } } } import javax.microedition.midlet.*; import javax.microedition.lcdui.*;
public class Midlet07 extends MIDlet { private Display display;
private Canvas media;
public Midlet07() {
media = new Media(this); }
protected void startApp() {
display = Display.getDisplay(this); display.setCurrent(media);
}
protected void pauseApp() {}
notifyDestroyed(); } } L. Percobaan animasi bola import javax.microedition.lcdui.*; import java.util.Random;
class Media extends Canvas implements Runnable, CommandListener { private final int BALL_SIZE = 20;
private final int[] PINK = {204,0,204}; private final int[] UNGU = {153,0,204}; private final int[] KREM = {255,153,0}; private final int[] HIJAU = {51,204,51}; private final int[] MERAH = {204,51,0};
private final int[][] COLOR = {PINK, UNGU, KREM, HIJAU, MERAH}; private final int DELAY = 0;
private BolaPantul bp;
private int x, y, lebar_canvas, tinggi_canvas; private boolean running = false;
private boolean naik = false; private Thread t;
private boolean ditekan = false;
private Command cmdExit = new Command("Keluar", Command.EXIT, 0);
public Media(BolaPantul bp) { this.bp = bp; inisialisasi(); addCommand(cmdExit); setCommandListener(this); }
private void inisialisasi() {
lebar_canvas = getWidth(); tinggi_canvas = getHeight(); x = (lebar_canvas-BALL_SIZE)/2;
y = 0; }
protected void paint(Graphics g) { g.setColor(255,204,255);
g.fillRect(0, 0, lebar_canvas, tinggi_canvas);
paintBall(g, x, y, BALL_SIZE, 0, 360, COLOR[1]); }
private void paintBall(Graphics graphics, int posx, int posy, int size, int start_angel, int end_angel, int[] color) {
graphics.setColor(color[0],color[1],color[2]); graphics.fillArc(posx, posy, size, size, start_angel, end_angel);
}
protected void showNotify() { running = true;
t = new Thread(this); t.start();
}
public void run() {
while (running) {
if (y == 0) { y++;
naik = false;
} else if (y < tinggi_canvas - BALL_SIZE && !naik) { y++;
} else if (y < tinggi_canvas - BALL_SIZE && naik) { y--;
} else if (y == tinggi_canvas - BALL_SIZE) { y--;
naik = true;
repaint(); try { Thread.sleep(DELAY); } catch (Exception e) {} } }
protected void keyPressed(int keyCode) { int key = getGameAction(keyCode); switch (key) {
case UP: if (y > 0) {y--;repaint();}
break;
case DOWN: if (y < tinggi_canvas - BALL_SIZE) {y++;repaint();}
break;
case LEFT: if (x > 0) {x--;repaint();} break;
case RIGHT: if (x < lebar_canvas - BALL_SIZE) {x++;repaint();}
break;
case FIRE: if (running) running = false; else showNotify();
break; }
}
public void commandAction(Command c, Displayable d) { if (c == cmdExit) { bp.destroyApp(true); } } }
import javax.microedition.midlet.*; import javax.microedition.lcdui.*;
public class BolaPantul extends MIDlet { private Display display;
private Media media;
public BolaPantul() {
media = new Media(this); }
protected void startApp() {
display = Display.getDisplay(this); display.setCurrent(media);
}
protected void pauseApp() { }
public void destroyApp(boolean unconditional) { notifyDestroyed();
} }