Saturday, May 9, 2009

J2ME Lesson 1 - Crash Course on J2ME; Simple Calculator

Hello :) I've decided to create a simple calculator sa J2ME. Sa succeeding lessons ko na ituturo on how to setup yung eclipse for J2ME. Gusto ko lang mashare tong code na ginawa ko kanina kasi may tropa tayo sa Symbianize (si exzibit15) na nagtatanong about J2ME eh nasa mood ako ngayon mag J2ME. This is not exactly what he needs kasi ang tanong nya yung about sa pag add ng image pero asa mood akong gumawa ng calculator eh. :)

import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.TextField;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;


public class Calculator extends MIDlet implements CommandListener {

private Display display;
private Form form;
private TextField textField = new TextField("Input","",10,TextField.DECIMAL);
private Command plus = new Command("+",Command.OK,1);
private Command minus = new Command("-",Command.OK,1);
private Command multiply = new Command("x",Command.OK,1);
private Command divide = new Command("/",Command.OK,1);
private Command exit = new Command("Exit",Command.EXIT,1);
private Command clear = new Command("C",Command.OK,1);
private Command answer = new Command("Equals",Command.OK,1);

double input1,
input2,
result;

char operator;

public Calculator() {
display = Display.getDisplay(this);
form = new Form("Calculator");
form.append(textField);
form.addCommand(exit);
form.addCommand(clear);
form.addCommand(plus);
form.addCommand(minus);
form.addCommand(multiply);
form.addCommand(divide);
form.setCommandListener(this);
}

protected void destroyApp(boolean bye)
throws MIDletStateChangeException {
// TODO Auto-generated method stub

}

protected void pauseApp() {
// TODO Auto-generated method stub

}

protected void startApp() throws MIDletStateChangeException {
display.setCurrent(form);

}

public void commandAction(Command command, Displayable display) {
if(display == form && command == clear) {
textField.setString("");

} else if(display == form && command == exit) {
try {
destroyApp(true);
} catch (MIDletStateChangeException e) {
e.printStackTrace();
}
notifyDestroyed();
} else if(display == form && command == plus) {
form.addCommand(answer);
input1 = Double.parseDouble(textField.getString());
textField.setString("");
operator = '+';
} else if(display == form && command == minus) {
form.addCommand(answer);
input1 = Double.parseDouble(textField.getString());
textField.setString("");
operator = '-';
} else if(display == form && command == multiply) {
form.addCommand(answer);
input1 = Double.parseDouble(textField.getString());
textField.setString("");
operator = '*';
} else if(display == form && command == divide) {
form.addCommand(answer);
input1 = Double.parseDouble(textField.getString());
textField.setString("");
operator = '/';
} else if(display == form && command == answer) {
input2 = Double.parseDouble(textField.getString());
if(operator == '+') {
result = input1 + input2;
} else if (operator == '-') {
result = input1 - input2;
} else if (operator == '*') {
result = input1 * input2;
} else if (operator == '/') {
result = input1 / input2;
}
textField.setString((result + ""));
form.removeCommand(answer);
form.addCommand(plus);
form.addCommand(minus);
form.addCommand(multiply);
form.addCommand(divide);
}
}
}

2 comments:

  1. sir, paano ko ba i run ito sa eclipse? hindi ko magets eh..:)

    ReplyDelete
  2. ay sir bale kelangan pa ng wireless toolkit from Sun then plugin sa eclipse. gagawa din ako ng tutorial dyan sir. medyo mahaba kasi explain kung dito lang sa comment. salamat sa pagbabasa! :)

    ReplyDelete