import javax.microedition.lcdui.*;
import javax.microedition.media.*;
import javax.microedition.media.control.VideoControl;
public class CameraCanvas extends Canvas {
private CameraMIDlet midlet;
public CameraCanvas(CameraMIDlet midlet, VideoControl vc) {
this.midlet = midlet;
vc.initDisplayMode(VideoControl.USE_DIRECT_VIDEO, this);
try {
vc.setDisplayLocation(0,0);
vc.setDisplaySize(this.getWidth(), this.getHeight());
} catch (MediaException me) {
me.printStackTrace();
}
vc.setVisible(true);
}
public void paint(Graphics g) {
g.setColor(0, 0, 0);
g.drawRect(0, 0, this.getWidth()-1, this.getHeight()-1);
}
}
Friday, December 7, 2012
Scrip menerima MMS pada JAVA (J2ME)
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.io.*;
import javax.wireless.messaging.*;
import java.io.*;
public class TerimaMMS extends MIDlet
implements CommandListener, MessageListener, Runnable {
private Display display;
private Form content;
private Alert alert;
private MessageConnection mmsConn;
private Message message;
private Thread thread;
private String senderAddress, subject, connectionList[];
private boolean done;
private final Command cmdKeluar;
public TerimaMMS() {
display = Display.getDisplay(this);
cmdKeluar = new Command("Keluar", Command.EXIT, 1);
content = new Form("Menerima MMS");
content.addCommand(cmdKeluar);
content.setCommandListener(this);
String appID = getAppProperty("MMS-ApplicationID");
String address = "mms://:" + appID;
try {
mmsConn = (MessageConnection) Connector.open(address);
mmsConn.setMessageListener(this);
} catch (IOException ioe) {
ioe.printStackTrace();
}
connectionList = PushRegistry.listConnections(true);
if (connectionList == null || connectionList.length == 0) {
content.append("waiting for MMS on application ID: " +
appID);
}
done = false;
thread = new Thread(this);
thread.start();
}
public void startApp() {
display.setCurrent(content);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
public void commandAction(Command c, Displayable d) {
if (c == cmdKeluar) {
destroyApp(false);
notifyDestroyed();
}
}
public void notifyIncomingMessage(MessageConnection conn) {
if (thread == null && !done) {
thread = new Thread(this);
thread.start();
}
}
public void run() {
receiveMMS();
}
public void receiveMMS() {
try {
message = mmsConn.receive();
if (message != null) {
senderAddress = message.getAddress();
content.deleteAll();
String titleStr = senderAddress.substring(6);
int colonPos = titleStr.indexOf(":");
if (colonPos != -1) {
titleStr = titleStr.substring(0, colonPos);
}
content.setTitle("Dari: " + titleStr);
if (message instanceof MultipartMessage) {
MultipartMessage mpm = (MultipartMessage) message;
StringBuffer buff = new StringBuffer("Judul: ");
buff.append((subject = mpm.getSubject()));
buff.append("\nTanggal: ");
buff.append(mpm.getTimestamp().toString());
StringItem messageItem = new StringItem("Pesan",
buff.toString());
messageItem.setLayout(Item.LAYOUT_NEWLINE_AFTER);
content.append(messageItem);
MessagePart[] parts = mpm.getMessageParts();
if (parts != null) {
for (int i = 0; i < parts.length; i++) {
buff = new StringBuffer();
MessagePart mp = parts[i];
buff.append("Tipe isi: ");
String mimeType = mp.getMIMEType();
buff.append(mimeType);
String contentLocation = mp.getContentLocation();
buff.append("\nIsi:\n");
byte[] ba = mp.getContent();
if (mimeType.equals("image/png") ||
mimeType.equals("image/jpg")) {
content.append(buff.toString());
Image img = Image.createImage(ba, 0, ba.length);
ImageItem ii = new ImageItem(contentLocation,
img, Item.LAYOUT_NEWLINE_AFTER,
contentLocation);
content.append(ii);
} else {
buff.append(new String(ba));
StringItem si =
new StringItem("Bagian", buff.toString());
si.setLayout(Item.LAYOUT_NEWLINE_AFTER);
content.append(si);
}
}
}
}
display.setCurrent(content);
}
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
}
import javax.microedition.lcdui.*;
import javax.microedition.io.*;
import javax.wireless.messaging.*;
import java.io.*;
public class TerimaMMS extends MIDlet
implements CommandListener, MessageListener, Runnable {
private Display display;
private Form content;
private Alert alert;
private MessageConnection mmsConn;
private Message message;
private Thread thread;
private String senderAddress, subject, connectionList[];
private boolean done;
private final Command cmdKeluar;
public TerimaMMS() {
display = Display.getDisplay(this);
cmdKeluar = new Command("Keluar", Command.EXIT, 1);
content = new Form("Menerima MMS");
content.addCommand(cmdKeluar);
content.setCommandListener(this);
String appID = getAppProperty("MMS-ApplicationID");
String address = "mms://:" + appID;
try {
mmsConn = (MessageConnection) Connector.open(address);
mmsConn.setMessageListener(this);
} catch (IOException ioe) {
ioe.printStackTrace();
}
connectionList = PushRegistry.listConnections(true);
if (connectionList == null || connectionList.length == 0) {
content.append("waiting for MMS on application ID: " +
appID);
}
done = false;
thread = new Thread(this);
thread.start();
}
public void startApp() {
display.setCurrent(content);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
public void commandAction(Command c, Displayable d) {
if (c == cmdKeluar) {
destroyApp(false);
notifyDestroyed();
}
}
public void notifyIncomingMessage(MessageConnection conn) {
if (thread == null && !done) {
thread = new Thread(this);
thread.start();
}
}
public void run() {
receiveMMS();
}
public void receiveMMS() {
try {
message = mmsConn.receive();
if (message != null) {
senderAddress = message.getAddress();
content.deleteAll();
String titleStr = senderAddress.substring(6);
int colonPos = titleStr.indexOf(":");
if (colonPos != -1) {
titleStr = titleStr.substring(0, colonPos);
}
content.setTitle("Dari: " + titleStr);
if (message instanceof MultipartMessage) {
MultipartMessage mpm = (MultipartMessage) message;
StringBuffer buff = new StringBuffer("Judul: ");
buff.append((subject = mpm.getSubject()));
buff.append("\nTanggal: ");
buff.append(mpm.getTimestamp().toString());
StringItem messageItem = new StringItem("Pesan",
buff.toString());
messageItem.setLayout(Item.LAYOUT_NEWLINE_AFTER);
content.append(messageItem);
MessagePart[] parts = mpm.getMessageParts();
if (parts != null) {
for (int i = 0; i < parts.length; i++) {
buff = new StringBuffer();
MessagePart mp = parts[i];
buff.append("Tipe isi: ");
String mimeType = mp.getMIMEType();
buff.append(mimeType);
String contentLocation = mp.getContentLocation();
buff.append("\nIsi:\n");
byte[] ba = mp.getContent();
if (mimeType.equals("image/png") ||
mimeType.equals("image/jpg")) {
content.append(buff.toString());
Image img = Image.createImage(ba, 0, ba.length);
ImageItem ii = new ImageItem(contentLocation,
img, Item.LAYOUT_NEWLINE_AFTER,
contentLocation);
content.append(ii);
} else {
buff.append(new String(ba));
StringItem si =
new StringItem("Bagian", buff.toString());
si.setLayout(Item.LAYOUT_NEWLINE_AFTER);
content.append(si);
}
}
}
}
display.setCurrent(content);
}
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
}
Script Mengirim SMS pada JAVA (J2ME)
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.wireless.messaging.*;
import javax.microedition.io.*;
import java.io.*;
public class KirimSMS extends MIDlet
implements CommandListener, Runnable {
private Display display;
private Command cmdKeluar, cmdLanjut, cmdKembali, cmdKirim;
private Displayable prevScreen;
private TextBox tfNum, tfText;
private String port;
private Thread thread;
private Alert alert;
private final String INVALID_PHONE =
"Nomor yang dimasukkan tidak absah";
public KirimSMS() {
display = Display.getDisplay(this);
port = getAppProperty("Port-SMS");
cmdKeluar = new Command("Keluar", Command.EXIT, 1);
cmdLanjut = new Command("Lanjut", Command.SCREEN, 1);
cmdKembali = new Command("Kembali", Command.BACK, 1);
cmdKirim = new Command("Kirim", Command.SCREEN, 1);
alert = new Alert(null);
alert.setTimeout(3000);
}
public void startApp() {
tfNum = generatePhoneInput();
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
public void commandAction(Command c, Displayable s) {
if (c == cmdKeluar) {
destroyApp(false);
notifyDestroyed();
} else if (c == cmdKembali) {
display.setCurrent(tfNum);
} else if (c == cmdLanjut) {
if (!isValidPhoneNumber(tfNum.getString())) {
alert.setType(AlertType.ERROR);
alert.setString(INVALID_PHONE);
display.setCurrent(alert,tfNum);
} else {
tfText = generateMessageInput();
}
} else {
thread = new Thread(this);
thread.start();
}
}
public void run() {
MessageConnection conn = null;
String alamat = "sms://" + tfNum.getString() + ":" + port;
try {
conn = (MessageConnection) Connector.open(alamat);
TextMessage pesan = (TextMessage)
conn.newMessage(MessageConnection.TEXT_MESSAGE);
pesan.setAddress(alamat);
pesan.setPayloadText(tfText.getString());
conn.send(pesan);
alert.setString("Sedang mengirim ke nomor " +
alamat.substring(6));
alert.setType(AlertType.INFO);
display.setCurrent(alert);
} catch (IOException ioe) {
ioe.printStackTrace();
}
if (conn != null) {
try {
conn.close();
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
}
public TextBox generatePhoneInput() {
TextBox tfPhone = new TextBox("Nomor Tujuan?", null,
15, TextField.PHONENUMBER);
tfPhone.addCommand(cmdKeluar);
tfPhone.addCommand(cmdLanjut);
tfPhone.setCommandListener(this);
display.setCurrent(tfPhone);
return tfPhone;
}
public TextBox generateMessageInput() {
TextBox tfMessage = new TextBox("Teks Pesan", null,
500, TextField.ANY);
tfMessage.addCommand(cmdKembali);
tfMessage.addCommand(cmdKirim);
tfMessage.setCommandListener(this);
display.setCurrent(tfMessage);
return tfMessage;
}
private static boolean isValidPhoneNumber(String number) {
char[] chars = number.toCharArray();
if (chars.length == 0) {
return false;
}
int startPos = 0;
// jika diawali dengan tanda +
if (chars[0] == '+') {
startPos = 1;
}
for (int i = startPos; i < chars.length; ++i) {
if (!Character.isDigit(chars[i])) {
return false;
}
}
return true;
}
}
import javax.microedition.lcdui.*;
import javax.wireless.messaging.*;
import javax.microedition.io.*;
import java.io.*;
public class KirimSMS extends MIDlet
implements CommandListener, Runnable {
private Display display;
private Command cmdKeluar, cmdLanjut, cmdKembali, cmdKirim;
private Displayable prevScreen;
private TextBox tfNum, tfText;
private String port;
private Thread thread;
private Alert alert;
private final String INVALID_PHONE =
"Nomor yang dimasukkan tidak absah";
public KirimSMS() {
display = Display.getDisplay(this);
port = getAppProperty("Port-SMS");
cmdKeluar = new Command("Keluar", Command.EXIT, 1);
cmdLanjut = new Command("Lanjut", Command.SCREEN, 1);
cmdKembali = new Command("Kembali", Command.BACK, 1);
cmdKirim = new Command("Kirim", Command.SCREEN, 1);
alert = new Alert(null);
alert.setTimeout(3000);
}
public void startApp() {
tfNum = generatePhoneInput();
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
public void commandAction(Command c, Displayable s) {
if (c == cmdKeluar) {
destroyApp(false);
notifyDestroyed();
} else if (c == cmdKembali) {
display.setCurrent(tfNum);
} else if (c == cmdLanjut) {
if (!isValidPhoneNumber(tfNum.getString())) {
alert.setType(AlertType.ERROR);
alert.setString(INVALID_PHONE);
display.setCurrent(alert,tfNum);
} else {
tfText = generateMessageInput();
}
} else {
thread = new Thread(this);
thread.start();
}
}
public void run() {
MessageConnection conn = null;
String alamat = "sms://" + tfNum.getString() + ":" + port;
try {
conn = (MessageConnection) Connector.open(alamat);
TextMessage pesan = (TextMessage)
conn.newMessage(MessageConnection.TEXT_MESSAGE);
pesan.setAddress(alamat);
pesan.setPayloadText(tfText.getString());
conn.send(pesan);
alert.setString("Sedang mengirim ke nomor " +
alamat.substring(6));
alert.setType(AlertType.INFO);
display.setCurrent(alert);
} catch (IOException ioe) {
ioe.printStackTrace();
}
if (conn != null) {
try {
conn.close();
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
}
public TextBox generatePhoneInput() {
TextBox tfPhone = new TextBox("Nomor Tujuan?", null,
15, TextField.PHONENUMBER);
tfPhone.addCommand(cmdKeluar);
tfPhone.addCommand(cmdLanjut);
tfPhone.setCommandListener(this);
display.setCurrent(tfPhone);
return tfPhone;
}
public TextBox generateMessageInput() {
TextBox tfMessage = new TextBox("Teks Pesan", null,
500, TextField.ANY);
tfMessage.addCommand(cmdKembali);
tfMessage.addCommand(cmdKirim);
tfMessage.setCommandListener(this);
display.setCurrent(tfMessage);
return tfMessage;
}
private static boolean isValidPhoneNumber(String number) {
char[] chars = number.toCharArray();
if (chars.length == 0) {
return false;
}
int startPos = 0;
// jika diawali dengan tanda +
if (chars[0] == '+') {
startPos = 1;
}
for (int i = startPos; i < chars.length; ++i) {
if (!Character.isDigit(chars[i])) {
return false;
}
}
return true;
}
}
Script mengirim MMS pada JAVA (J2ME)
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.io.*;
import javax.wireless.messaging.*;
import java.io.*;
import java.util.Vector;
public class KirimMMS extends MIDlet
implements CommandListener {
private Display display;
private Form form;
private TextField destination;
private Image image = null;
private MMSThread thread;
private final String textMsg = "Contoh pesan teks";
private final String imageFile = "/icons/Duke.png";
private final Command cmdKeluar =
new Command("Keluar", Command.EXIT, 1);
private final Command cmdKirim =
new Command("Kirim", Command.SCREEN, 1);
public KirimMMS() {
display = Display.getDisplay(this);
form = new Form("Mengirim MMS");
destination = new TextField("Nomor tujuan:", null, 15,
TextField.PHONENUMBER);
form.append(destination);
//pesan teks
StringItem si = new StringItem("Pesan teks:",
"\n" + textMsg + "\n");
form.append(si);
//pesan gambar
try {
image = Image.createImage(imageFile);
} catch(IOException ioe) {
ioe.printStackTrace();
}
ImageItem ii = new ImageItem("Pesan gambar:", image,
Item.LAYOUT_LEFT, null);
form.append(ii);
form.addCommand(cmdKeluar);
form.addCommand(cmdKirim);
form.setCommandListener(this);
}
public void startApp() {
display.setCurrent(form);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
public void commandAction(Command c, Displayable s) {
if (c == cmdKeluar) {
destroyApp(false);
notifyDestroyed();
} else {
thread = new MMSThread(this);
thread.start();
}
}
// inner class
class MMSThread extends Thread {
private KirimMMS midlet;
private Vector parts;
public MMSThread(KirimMMS midlet) {
this.midlet = midlet;
}
public void run() {
String appID = midlet.getAppProperty("MMS-ApplicationID");
String phoneNumber = destination.getString();
String address = "mms://" + phoneNumber + ":" + appID;
parts = new Vector();
// pesan teks
String encoding = "UTF-8";
try {
byte[] textcontents = textMsg.getBytes(encoding);
addPart(
new MessagePart(textcontents, 0, textcontents.length,
"text/plain", "id1",
"contentLocation", encoding));
} catch (Exception e) {
//
}
// pesan gambar
try {
InputStream is =
getClass().getResourceAsStream(imageFile);
byte[] imagecontents = new byte[is.available()];
is.read(imagecontents);
addPart(
new MessagePart(imagecontents, 0, imagecontents.length,
"image/png", "id2",
"Duke.png", null));
} catch (Exception e) {
//
}
MessageConnection mmsconn = null;
try {
mmsconn = (MessageConnection) Connector.open(address);
MultipartMessage mmmessage =(MultipartMessage)
mmsconn.newMessage(
MessageConnection.MULTIPART_MESSAGE);
mmmessage.setAddress(address);
MessagePart[] mparts = getParts();
for (int i = 0; i < mparts.length; i++) {
mmmessage.addMessagePart(mparts[i]);
}
mmmessage.setSubject("Contoh MMS");
mmsconn.send(mmmessage);
} catch (Exception e) {
System.out.println(e.toString());
}
}
public MessagePart[] getParts() {
MessagePart[] partsArray = new MessagePart[parts.size()];
parts.copyInto(partsArray);
return partsArray;
}
public void addPart(MessagePart part) {
parts.addElement(part);
}
}
}
import javax.microedition.lcdui.*;
import javax.microedition.io.*;
import javax.wireless.messaging.*;
import java.io.*;
import java.util.Vector;
public class KirimMMS extends MIDlet
implements CommandListener {
private Display display;
private Form form;
private TextField destination;
private Image image = null;
private MMSThread thread;
private final String textMsg = "Contoh pesan teks";
private final String imageFile = "/icons/Duke.png";
private final Command cmdKeluar =
new Command("Keluar", Command.EXIT, 1);
private final Command cmdKirim =
new Command("Kirim", Command.SCREEN, 1);
public KirimMMS() {
display = Display.getDisplay(this);
form = new Form("Mengirim MMS");
destination = new TextField("Nomor tujuan:", null, 15,
TextField.PHONENUMBER);
form.append(destination);
//pesan teks
StringItem si = new StringItem("Pesan teks:",
"\n" + textMsg + "\n");
form.append(si);
//pesan gambar
try {
image = Image.createImage(imageFile);
} catch(IOException ioe) {
ioe.printStackTrace();
}
ImageItem ii = new ImageItem("Pesan gambar:", image,
Item.LAYOUT_LEFT, null);
form.append(ii);
form.addCommand(cmdKeluar);
form.addCommand(cmdKirim);
form.setCommandListener(this);
}
public void startApp() {
display.setCurrent(form);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
public void commandAction(Command c, Displayable s) {
if (c == cmdKeluar) {
destroyApp(false);
notifyDestroyed();
} else {
thread = new MMSThread(this);
thread.start();
}
}
// inner class
class MMSThread extends Thread {
private KirimMMS midlet;
private Vector parts;
public MMSThread(KirimMMS midlet) {
this.midlet = midlet;
}
public void run() {
String appID = midlet.getAppProperty("MMS-ApplicationID");
String phoneNumber = destination.getString();
String address = "mms://" + phoneNumber + ":" + appID;
parts = new Vector();
// pesan teks
String encoding = "UTF-8";
try {
byte[] textcontents = textMsg.getBytes(encoding);
addPart(
new MessagePart(textcontents, 0, textcontents.length,
"text/plain", "id1",
"contentLocation", encoding));
} catch (Exception e) {
//
}
// pesan gambar
try {
InputStream is =
getClass().getResourceAsStream(imageFile);
byte[] imagecontents = new byte[is.available()];
is.read(imagecontents);
addPart(
new MessagePart(imagecontents, 0, imagecontents.length,
"image/png", "id2",
"Duke.png", null));
} catch (Exception e) {
//
}
MessageConnection mmsconn = null;
try {
mmsconn = (MessageConnection) Connector.open(address);
MultipartMessage mmmessage =(MultipartMessage)
mmsconn.newMessage(
MessageConnection.MULTIPART_MESSAGE);
mmmessage.setAddress(address);
MessagePart[] mparts = getParts();
for (int i = 0; i < mparts.length; i++) {
mmmessage.addMessagePart(mparts[i]);
}
mmmessage.setSubject("Contoh MMS");
mmsconn.send(mmmessage);
} catch (Exception e) {
System.out.println(e.toString());
}
}
public MessagePart[] getParts() {
MessagePart[] partsArray = new MessagePart[parts.size()];
parts.copyInto(partsArray);
return partsArray;
}
public void addPart(MessagePart part) {
parts.addElement(part);
}
}
}
Mengurutkan data dalam record store pada JAVA (J2ME)
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.rms.*;
import java.io.IOException;
public class DemoUrutRecord extends MIDlet
implements CommandListener {
private Display display;
private List list;
private RecordStore rs = null;
private final Command cmdKeluar =
new Command("Keluar", Command.EXIT, 1);
private final Command cmdUrutkan =
new Command("Urutkan", Command.SCREEN, 1);
public DemoUrutRecord() {
display = Display.getDisplay(this);
list = new List("Daftar Nama", Choice.IMPLICIT);
list.addCommand(cmdKeluar);
list.addCommand(cmdUrutkan);
list.setCommandListener(this);
try {
rs = RecordStore.openRecordStore("DBNama", true);
} catch (RecordStoreException rse) {
rse.printStackTrace();
}
}
public void startApp() {
try {
if (rs.getNumRecords() < 1) {
tambahData("Kiki");
tambahData("Fira");
tambahData("Dede");
tambahData("Mira");
tambahData("Aryo");
}
} catch (RecordStoreException rse) {
rse.printStackTrace();
}
tampilkanData(false); // menampilkan data tanpa diurutkan
display.setCurrent(list);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
public void commandAction(Command c, Displayable s) {
if (c == cmdKeluar) {
destroyApp(false);
notifyDestroyed();
} else if (c == cmdUrutkan) {
tampilkanData(true);
}
}
public void tambahData(String nama) {
byte[] temp = null;
try {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(baos);
dos.writeUTF(nama);
temp = baos.toByteArray();
} catch (IOException ioe) {
ioe.printStackTrace();
}
try {
rs.addRecord(temp, 0, temp.length);
} catch (RecordStoreNotOpenException rsnoe) {
rsnoe.printStackTrace();
} catch (RecordStoreException rse) {
rse.printStackTrace();
}
}
public void tampilkanData(boolean urut) {
byte[] temp = null;
RecordEnumeration re = null;
list.deleteAll();
try {
if (urut) {
UrutNama un = new UrutNama();
re = rs.enumerateRecords(null, un, false);
} else {
re = rs.enumerateRecords(null, null, false);
}
while (re.hasNextElement()) {
int i = re.nextRecordId();
temp = rs.getRecord(i);
ByteArrayInputStream bais =
new ByteArrayInputStream(temp);
DataInputStream dis = new DataInputStream(bais);
try {
String nama = dis.readUTF();
list.append(nama, null);
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
display.setCurrent(list);
} catch (InvalidRecordIDException invID) {
invID.printStackTrace();
} catch (RecordStoreNotOpenException rsnoe) {
rsnoe.printStackTrace();
} catch (RecordStoreException rse) {
rse.printStackTrace();
}
}
// inner class untuk mengurutkan data
class UrutNama implements RecordComparator {
public int compare(byte[] record1, byte[] record2) {
String nama1 = new String(record1);
String nama2 = new String(record2);
int hasil = nama1.compareTo(nama2);
if (hasil < 0) {
return RecordComparator.PRECEDES;
} else if (hasil > 0) {
return RecordComparator.FOLLOWS;
} else {
return RecordComparator.EQUIVALENT;
}
}
}
}
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.rms.*;
import java.io.IOException;
public class DemoUrutRecord extends MIDlet
implements CommandListener {
private Display display;
private List list;
private RecordStore rs = null;
private final Command cmdKeluar =
new Command("Keluar", Command.EXIT, 1);
private final Command cmdUrutkan =
new Command("Urutkan", Command.SCREEN, 1);
public DemoUrutRecord() {
display = Display.getDisplay(this);
list = new List("Daftar Nama", Choice.IMPLICIT);
list.addCommand(cmdKeluar);
list.addCommand(cmdUrutkan);
list.setCommandListener(this);
try {
rs = RecordStore.openRecordStore("DBNama", true);
} catch (RecordStoreException rse) {
rse.printStackTrace();
}
}
public void startApp() {
try {
if (rs.getNumRecords() < 1) {
tambahData("Kiki");
tambahData("Fira");
tambahData("Dede");
tambahData("Mira");
tambahData("Aryo");
}
} catch (RecordStoreException rse) {
rse.printStackTrace();
}
tampilkanData(false); // menampilkan data tanpa diurutkan
display.setCurrent(list);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
public void commandAction(Command c, Displayable s) {
if (c == cmdKeluar) {
destroyApp(false);
notifyDestroyed();
} else if (c == cmdUrutkan) {
tampilkanData(true);
}
}
public void tambahData(String nama) {
byte[] temp = null;
try {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(baos);
dos.writeUTF(nama);
temp = baos.toByteArray();
} catch (IOException ioe) {
ioe.printStackTrace();
}
try {
rs.addRecord(temp, 0, temp.length);
} catch (RecordStoreNotOpenException rsnoe) {
rsnoe.printStackTrace();
} catch (RecordStoreException rse) {
rse.printStackTrace();
}
}
public void tampilkanData(boolean urut) {
byte[] temp = null;
RecordEnumeration re = null;
list.deleteAll();
try {
if (urut) {
UrutNama un = new UrutNama();
re = rs.enumerateRecords(null, un, false);
} else {
re = rs.enumerateRecords(null, null, false);
}
while (re.hasNextElement()) {
int i = re.nextRecordId();
temp = rs.getRecord(i);
ByteArrayInputStream bais =
new ByteArrayInputStream(temp);
DataInputStream dis = new DataInputStream(bais);
try {
String nama = dis.readUTF();
list.append(nama, null);
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
display.setCurrent(list);
} catch (InvalidRecordIDException invID) {
invID.printStackTrace();
} catch (RecordStoreNotOpenException rsnoe) {
rsnoe.printStackTrace();
} catch (RecordStoreException rse) {
rse.printStackTrace();
}
}
// inner class untuk mengurutkan data
class UrutNama implements RecordComparator {
public int compare(byte[] record1, byte[] record2) {
String nama1 = new String(record1);
String nama2 = new String(record2);
int hasil = nama1.compareTo(nama2);
if (hasil < 0) {
return RecordComparator.PRECEDES;
} else if (hasil > 0) {
return RecordComparator.FOLLOWS;
} else {
return RecordComparator.EQUIVALENT;
}
}
}
}
Memanipulasi data dalam record store, pada JAVA (J2ME)
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.rms.*;
public class DemoRMS extends MIDlet
implements CommandListener {
private Display display;
private Form form;
private RecordStore rs;
private RecordEnumeration re;
private ChoiceGroup choicegroup;
private Alert alert;
private List list;
//untuk proses entri data
private Form entri;
private TextField tfNama, tfNoTelp;
private final Command cmdKeluar =
new Command("Keluar", Command.EXIT, 1);
private final Command cmdPilih =
new Command("Pilih", Command.OK, 1);
private final Command cmdSimpan =
new Command("Simpan", Command.SCREEN, 1);
private final Command cmdHapus =
new Command("Hapus", Command.SCREEN, 1);
private final Command cmdKembali =
new Command("Kembali", Command.BACK, 1);
public DemoRMS() {
display = Display.getDisplay(this);
alert = new Alert(null);
alert.setTimeout(Alert.FOREVER);
list = new List(null, Choice.IMPLICIT);
rs = null;
// membuat atau membuka record store
try {
rs = RecordStore.openRecordStore("contohDB", true);
} catch (RecordStoreException rse) {
alert.setString("Record store tidak dapat dibuka. " +
"Aplikasi akan dihetikan");
alert.setType(AlertType.ERROR);
display.setCurrent(alert, null);
System.exit(1);
}
}
public void startApp() {
form = new Form("Demo RMS");
choicegroup = new ChoiceGroup("Menu:", Choice.EXCLUSIVE);
choicegroup.append("Tambah Record", null);
choicegroup.append("Daftar Record", null);
form.append(choicegroup);
form.addCommand(cmdKeluar);
form.addCommand(cmdPilih);
form.setCommandListener(this);
display.setCurrent(form);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
public void commandAction(Command c, Displayable s) {
if (c == cmdKeluar) {
destroyApp(false);
notifyDestroyed();
} else if (c == cmdPilih) {
switch (choicegroup.getSelectedIndex()) {
case 0: {
entriData();
break;
}
case 1: {
lihatRecord();
break;
}
}
} else if (c == cmdKembali) {
display.setCurrent(form);
} else if (c == cmdSimpan) {
alert.setType(AlertType.INFO);
if (!tfNama.equals("") && !tfNoTelp.equals("")) {
tambahRecord(tfNama.getString(), tfNoTelp.getString());
alert.setString("Data baru telah berhasil disimpan");
display.setCurrent(alert, form);
} else {
alert.setString("Data NAMA dan NO. TELP " +
"tidak boleh kosong");
display.setCurrent(alert, entri);
}
} else if (c == cmdHapus) {
int pos =
list.getString(list.getSelectedIndex()).indexOf(" [");
String nama = list.getString(
list.getSelectedIndex()).substring(0, pos);
hapusRecord(nama);
}
}
public void tambahRecord(String nama, String noTelp) {
byte[] temp = null;
try {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(baos);
dos.writeUTF(nama);
dos.writeUTF(noTelp);
temp = baos.toByteArray();
} catch (IOException ioe) {
ioe.printStackTrace();
}
try {
rs.addRecord(temp, 0, temp.length);
} catch (RecordStoreNotOpenException rsnoe) {
rsnoe.printStackTrace();
} catch (RecordStoreException rse) {
rse.printStackTrace();
}
}
public void lihatRecord() {
byte[] temp = null;
list.setTitle("Daftar Record");
list.deleteAll();
try {
re = rs.enumerateRecords(null, null, false);
while (re.hasNextElement()) {
int i = re.nextRecordId();
temp = rs.getRecord(i);
ByteArrayInputStream bais =
new ByteArrayInputStream(temp);
DataInputStream dis = new DataInputStream(bais);
try {
String nama = dis.readUTF();
String noTelp = dis.readUTF();
list.append(nama + " [" + noTelp + "]", null);
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
list.addCommand(cmdKembali);
list.addCommand(cmdHapus);
list.setCommandListener(this);
display.setCurrent(list);
} catch (InvalidRecordIDException invID) {
invID.printStackTrace();
} catch (RecordStoreNotOpenException rsnoe) {
rsnoe.printStackTrace();
} catch (RecordStoreException rse) {
rse.printStackTrace();
}
}
public void hapusRecord(String nama) {
byte[] temp = null;
try {
re = rs.enumerateRecords(null, null, false);
while (re.hasNextElement()) {
int i = re.nextRecordId();
temp = rs.getRecord(i);
ByteArrayInputStream bais =
new ByteArrayInputStream(temp);
DataInputStream dis = new DataInputStream(bais);
try {
String vNama = dis.readUTF();
if (vNama.equals(nama)) {
rs.deleteRecord(i);
break;
}
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
re.rebuild();
lihatRecord();
} catch (RecordStoreNotOpenException rsnoe) {
rsnoe.printStackTrace();
} catch (RecordStoreException rse) {
rse.printStackTrace();
}
}
public Form entriData() {
entri = new Form("Entri Data");
tfNama = new TextField("Nama:", null, 25, TextField.ANY);
tfNoTelp = new TextField("No. Telepon:", null, 15,
TextField.PHONENUMBER);
entri.append(tfNama);
entri.append(tfNoTelp);
entri.addCommand(cmdSimpan);
entri.addCommand(cmdKembali);
entri.setCommandListener(this);
display.setCurrent(entri);
return entri;
}
}
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.rms.*;
public class DemoRMS extends MIDlet
implements CommandListener {
private Display display;
private Form form;
private RecordStore rs;
private RecordEnumeration re;
private ChoiceGroup choicegroup;
private Alert alert;
private List list;
//untuk proses entri data
private Form entri;
private TextField tfNama, tfNoTelp;
private final Command cmdKeluar =
new Command("Keluar", Command.EXIT, 1);
private final Command cmdPilih =
new Command("Pilih", Command.OK, 1);
private final Command cmdSimpan =
new Command("Simpan", Command.SCREEN, 1);
private final Command cmdHapus =
new Command("Hapus", Command.SCREEN, 1);
private final Command cmdKembali =
new Command("Kembali", Command.BACK, 1);
public DemoRMS() {
display = Display.getDisplay(this);
alert = new Alert(null);
alert.setTimeout(Alert.FOREVER);
list = new List(null, Choice.IMPLICIT);
rs = null;
// membuat atau membuka record store
try {
rs = RecordStore.openRecordStore("contohDB", true);
} catch (RecordStoreException rse) {
alert.setString("Record store tidak dapat dibuka. " +
"Aplikasi akan dihetikan");
alert.setType(AlertType.ERROR);
display.setCurrent(alert, null);
System.exit(1);
}
}
public void startApp() {
form = new Form("Demo RMS");
choicegroup = new ChoiceGroup("Menu:", Choice.EXCLUSIVE);
choicegroup.append("Tambah Record", null);
choicegroup.append("Daftar Record", null);
form.append(choicegroup);
form.addCommand(cmdKeluar);
form.addCommand(cmdPilih);
form.setCommandListener(this);
display.setCurrent(form);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
public void commandAction(Command c, Displayable s) {
if (c == cmdKeluar) {
destroyApp(false);
notifyDestroyed();
} else if (c == cmdPilih) {
switch (choicegroup.getSelectedIndex()) {
case 0: {
entriData();
break;
}
case 1: {
lihatRecord();
break;
}
}
} else if (c == cmdKembali) {
display.setCurrent(form);
} else if (c == cmdSimpan) {
alert.setType(AlertType.INFO);
if (!tfNama.equals("") && !tfNoTelp.equals("")) {
tambahRecord(tfNama.getString(), tfNoTelp.getString());
alert.setString("Data baru telah berhasil disimpan");
display.setCurrent(alert, form);
} else {
alert.setString("Data NAMA dan NO. TELP " +
"tidak boleh kosong");
display.setCurrent(alert, entri);
}
} else if (c == cmdHapus) {
int pos =
list.getString(list.getSelectedIndex()).indexOf(" [");
String nama = list.getString(
list.getSelectedIndex()).substring(0, pos);
hapusRecord(nama);
}
}
public void tambahRecord(String nama, String noTelp) {
byte[] temp = null;
try {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(baos);
dos.writeUTF(nama);
dos.writeUTF(noTelp);
temp = baos.toByteArray();
} catch (IOException ioe) {
ioe.printStackTrace();
}
try {
rs.addRecord(temp, 0, temp.length);
} catch (RecordStoreNotOpenException rsnoe) {
rsnoe.printStackTrace();
} catch (RecordStoreException rse) {
rse.printStackTrace();
}
}
public void lihatRecord() {
byte[] temp = null;
list.setTitle("Daftar Record");
list.deleteAll();
try {
re = rs.enumerateRecords(null, null, false);
while (re.hasNextElement()) {
int i = re.nextRecordId();
temp = rs.getRecord(i);
ByteArrayInputStream bais =
new ByteArrayInputStream(temp);
DataInputStream dis = new DataInputStream(bais);
try {
String nama = dis.readUTF();
String noTelp = dis.readUTF();
list.append(nama + " [" + noTelp + "]", null);
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
list.addCommand(cmdKembali);
list.addCommand(cmdHapus);
list.setCommandListener(this);
display.setCurrent(list);
} catch (InvalidRecordIDException invID) {
invID.printStackTrace();
} catch (RecordStoreNotOpenException rsnoe) {
rsnoe.printStackTrace();
} catch (RecordStoreException rse) {
rse.printStackTrace();
}
}
public void hapusRecord(String nama) {
byte[] temp = null;
try {
re = rs.enumerateRecords(null, null, false);
while (re.hasNextElement()) {
int i = re.nextRecordId();
temp = rs.getRecord(i);
ByteArrayInputStream bais =
new ByteArrayInputStream(temp);
DataInputStream dis = new DataInputStream(bais);
try {
String vNama = dis.readUTF();
if (vNama.equals(nama)) {
rs.deleteRecord(i);
break;
}
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
re.rebuild();
lihatRecord();
} catch (RecordStoreNotOpenException rsnoe) {
rsnoe.printStackTrace();
} catch (RecordStoreException rse) {
rse.printStackTrace();
}
}
public Form entriData() {
entri = new Form("Entri Data");
tfNama = new TextField("Nama:", null, 25, TextField.ANY);
tfNoTelp = new TextField("No. Telepon:", null, 15,
TextField.PHONENUMBER);
entri.append(tfNama);
entri.append(tfNoTelp);
entri.addCommand(cmdSimpan);
entri.addCommand(cmdKembali);
entri.setCommandListener(this);
display.setCurrent(entri);
return entri;
}
}
Wednesday, December 5, 2012
Mencari/mem-filter data dalam record store pada JAVA (J2ME)
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.rms.*;
import java.io.IOException;
public class DemoCariRecord extends MIDlet
implements CommandListener {
private Display display;
private List list;
private TextField tfCari;
private RecordStore rs = null;
private final Command cmdKeluar =
new Command("Keluar", Command.EXIT, 1);
private final Command cmdKembali =
new Command("Kembali", Command.BACK, 1);
private final Command cmdPencarian =
new Command("Pencarian", Command.SCREEN, 1);
private final Command cmdCari =
new Command("Cari", Command.OK, 1);
public DemoCariRecord() {
display = Display.getDisplay(this);
list = new List(null, Choice.IMPLICIT);
list.addCommand(cmdKeluar);
list.addCommand(cmdPencarian);
list.setCommandListener(this);
try {
rs = RecordStore.openRecordStore("DBNama", true);
} catch (RecordStoreException rse) {
rse.printStackTrace();
}
}
public void startApp() {
try {
if (rs.getNumRecords() < 1) {
tambahData("Kiki");
tambahData("Fira");
tambahData("Dede");
tambahData("Mira");
tambahData("Aryo");
tambahData("Dona");
}
} catch (RecordStoreException rse) {
rse.printStackTrace();
}
tampilkanData(false);
display.setCurrent(list);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
public void commandAction(Command c, Displayable s) {
if (c == cmdKeluar) {
destroyApp(false);
notifyDestroyed();
} else if (c == cmdKembali) {
display.setCurrent(list);
tampilkanData(false);
} else if (c == cmdPencarian) {
Form form = new Form("Cari Nama");
tfCari = new TextField("Masukkan karakter pertama", null,
1, TextField.ANY);
form.append(tfCari);
form.addCommand(cmdCari);
form.addCommand(cmdKembali);
form.setCommandListener(this);
display.setCurrent(form);
} else if (c == cmdCari) {
tampilkanData(true);
}
}
public void tambahData(String nama) {
byte[] temp = null;
try {
ByteArrayOutputStream baos =
new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(baos);
dos.writeUTF(nama);
temp = baos.toByteArray();
} catch (IOException ioe) {
ioe.printStackTrace();
}
try {
rs.addRecord(temp, 0, temp.length);
} catch (RecordStoreNotOpenException rsnoe) {
rsnoe.printStackTrace();
} catch (RecordStoreException rse) {
rse.printStackTrace();
}
}
public void tampilkanData(boolean filter) {
byte[] temp = null;
RecordEnumeration re = null;
list.deleteAll();
try {
if (filter) {
String s = tfCari.getString().toLowerCase();
CariNama cn = new CariNama(s);
re = rs.enumerateRecords(cn, null, false);
list.setTitle("Hasil Pencarian");
list.removeCommand(cmdPencarian);
list.removeCommand(cmdKeluar);
list.addCommand(cmdKembali);
} else {
re = rs.enumerateRecords(null, null, false);
list.setTitle("Daftar Nama");
list.addCommand(cmdPencarian);
list.addCommand(cmdKeluar);
list.removeCommand(cmdKembali);
}
while (re.hasNextElement()) {
int i = re.nextRecordId();
temp = rs.getRecord(i);
ByteArrayInputStream bais =
new ByteArrayInputStream(temp);
DataInputStream dis = new DataInputStream(bais);
try {
String nama = dis.readUTF();
list.append(nama, null);
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
display.setCurrent(list);
} catch (InvalidRecordIDException invID) {
invID.printStackTrace();
} catch (RecordStoreNotOpenException rsnoe) {
rsnoe.printStackTrace();
} catch (RecordStoreException rse) {
rse.printStackTrace();
}
display.setCurrent(list);
}
// inner class untuk mencari data
class CariNama implements RecordFilter {
private String karakterAwal;
public CariNama(String karakterAwal) {
this.karakterAwal = karakterAwal.toLowerCase();
}
public boolean matches(byte[] candidate) {
String s =
new String(candidate).toLowerCase().substring(2);
return s.startsWith(karakterAwal);
}
}
}
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.rms.*;
import java.io.IOException;
public class DemoCariRecord extends MIDlet
implements CommandListener {
private Display display;
private List list;
private TextField tfCari;
private RecordStore rs = null;
private final Command cmdKeluar =
new Command("Keluar", Command.EXIT, 1);
private final Command cmdKembali =
new Command("Kembali", Command.BACK, 1);
private final Command cmdPencarian =
new Command("Pencarian", Command.SCREEN, 1);
private final Command cmdCari =
new Command("Cari", Command.OK, 1);
public DemoCariRecord() {
display = Display.getDisplay(this);
list = new List(null, Choice.IMPLICIT);
list.addCommand(cmdKeluar);
list.addCommand(cmdPencarian);
list.setCommandListener(this);
try {
rs = RecordStore.openRecordStore("DBNama", true);
} catch (RecordStoreException rse) {
rse.printStackTrace();
}
}
public void startApp() {
try {
if (rs.getNumRecords() < 1) {
tambahData("Kiki");
tambahData("Fira");
tambahData("Dede");
tambahData("Mira");
tambahData("Aryo");
tambahData("Dona");
}
} catch (RecordStoreException rse) {
rse.printStackTrace();
}
tampilkanData(false);
display.setCurrent(list);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
public void commandAction(Command c, Displayable s) {
if (c == cmdKeluar) {
destroyApp(false);
notifyDestroyed();
} else if (c == cmdKembali) {
display.setCurrent(list);
tampilkanData(false);
} else if (c == cmdPencarian) {
Form form = new Form("Cari Nama");
tfCari = new TextField("Masukkan karakter pertama", null,
1, TextField.ANY);
form.append(tfCari);
form.addCommand(cmdCari);
form.addCommand(cmdKembali);
form.setCommandListener(this);
display.setCurrent(form);
} else if (c == cmdCari) {
tampilkanData(true);
}
}
public void tambahData(String nama) {
byte[] temp = null;
try {
ByteArrayOutputStream baos =
new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(baos);
dos.writeUTF(nama);
temp = baos.toByteArray();
} catch (IOException ioe) {
ioe.printStackTrace();
}
try {
rs.addRecord(temp, 0, temp.length);
} catch (RecordStoreNotOpenException rsnoe) {
rsnoe.printStackTrace();
} catch (RecordStoreException rse) {
rse.printStackTrace();
}
}
public void tampilkanData(boolean filter) {
byte[] temp = null;
RecordEnumeration re = null;
list.deleteAll();
try {
if (filter) {
String s = tfCari.getString().toLowerCase();
CariNama cn = new CariNama(s);
re = rs.enumerateRecords(cn, null, false);
list.setTitle("Hasil Pencarian");
list.removeCommand(cmdPencarian);
list.removeCommand(cmdKeluar);
list.addCommand(cmdKembali);
} else {
re = rs.enumerateRecords(null, null, false);
list.setTitle("Daftar Nama");
list.addCommand(cmdPencarian);
list.addCommand(cmdKeluar);
list.removeCommand(cmdKembali);
}
while (re.hasNextElement()) {
int i = re.nextRecordId();
temp = rs.getRecord(i);
ByteArrayInputStream bais =
new ByteArrayInputStream(temp);
DataInputStream dis = new DataInputStream(bais);
try {
String nama = dis.readUTF();
list.append(nama, null);
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
display.setCurrent(list);
} catch (InvalidRecordIDException invID) {
invID.printStackTrace();
} catch (RecordStoreNotOpenException rsnoe) {
rsnoe.printStackTrace();
} catch (RecordStoreException rse) {
rse.printStackTrace();
}
display.setCurrent(list);
}
// inner class untuk mencari data
class CariNama implements RecordFilter {
private String karakterAwal;
public CariNama(String karakterAwal) {
this.karakterAwal = karakterAwal.toLowerCase();
}
public boolean matches(byte[] candidate) {
String s =
new String(candidate).toLowerCase().substring(2);
return s.startsWith(karakterAwal);
}
}
}
Subscribe to:
Posts (Atom)