java me lab2-slides (gui programming)

Post on 15-Jan-2015

689 Views

Category:

Documents

3 Downloads

Preview:

Click to see full reader

DESCRIPTION

 

TRANSCRIPT

Lab 4 (Lab 2 on Java ME)Java ME GUI Programming

Pervasive Computing Lab

Prepared by: Tuan Nguyen

MIDP User interface

High level

Low level

Screen

Alert TextBoxListForm

GraphicsCanvas

Form

Picture from: http://www.javaworld.com/javaworld/jw-05-2005/images/jw-0516-midp1.jpg

Let’s Example

Mobile Restaurant App Allow a user to order a

meal remotely using a mobile phone.

This is a list (List class)

List – a class of Screen

String[] mainCourseOffers={"Steak","Lamb","Chicken"};...

//create the listlstMainCourse = new List("Select main course:",

Choice.MULTIPLE, mainCourseOffers);

//display the list on the screenDisplay.getDisplay(this).setCurrent(lstMainCourse);

Add a Command button to the list

//Create a commandcmdNext = new Command("Next", Command.OK, 1);

//Add a command “Next” to the Main Course listlstMainCourse.addCommand(cmdNext);

//let lstMainCourse listen to the user’s commandslstMainCourse.setCommandListener(this);

Result

The “Next” command does nothing now.

Let’s add another list called “Dessert List”.

When the user selects the Next command, the Dessert List will be displayed on the screen.

The “Next” command button

Create the Dessert list

String[] dessertOffers = {"Ice Cream", "Chocolate Cake", "Orange Juice"};

...//create the Dessert listlstDessert=new List("Select dessert:",Choice.MULTIPLE,

dessertOffers);

//but not display the dessert list until the user selects the “Next” command.

Implement CommandListener class

public class Restaurant extends MIDletimplements CommandListener

...

//process commandspublic void commandAction(Command command, Displayable displayable){

String label = command.getLabel(); if(label.equals("Next")){ Display.getDisplay(this).setCurrent(lstDessert); }}

...

Add an Order Summary screen

Allow the user see what s/he’s ordering. How?1. Create the empty Order

Summary screen (e.g., a form).

2. Add a command “Proceed” to the Dessert list that navigates to the Order Summary screen.

3. Add code in the commandAction method to process the “Proceed” command.

Get the state of all elements of a list

//retrieve selected main coursesboolean[] selectedMainCourses = new boolean[lstMainCourse.size()];lstMainCourse.getSelectedFlags(selectedMainCourses);String strMainCourse = "";for(int i=0; i<lstMainCourse.size(); i++){ if(selectedMainCourses[i]) strMainCourse += mainCourseOffers[i] + ", ";}

//retrieve selected dessertboolean[] selectedDessert = new boolean[lstDessert.size()];lstDessert.getSelectedFlags(selectedDessert);String strDessert = "";for(int i=0; i<lstDessert.size(); i++){ if(selectedDessert[i]) strDessert += dessertOffers[i] + ", ";}//update the Order Summary form according to the selected main courses...sItemMainCourse.setText(strMainCourse);sItemDessert.setText(strDessert);Display.getDisplay(this).setCurrent(frmOrderSummary);

Exercise:Improve Mobile Restaurant App

Find the completed code for this app on the subject web site.

HotelBooking Application

Purpose: a customer wants to book a room at Saville Hotel

The UI can be like this

Items are Form, Gauge, Spacer, ImageItem, TextField , DateField, StringItem, ChoiceGroup

Graphics

javax.microedition.lcdui.Canvas

class MyCanvas extends Canvas {

public void paint(Graphics g) {

// create a 20x20 black square in the centre

g.setColor(0xFF0000); // make sure it is red

g.fillRect(getWidth()/2–10, getHeight()/2–10, 20, 20);

g.setColor(0x0000FF); // make sure it is blue

g.drawString("Hello World", getWidth()/2, getHeight()/2

- 10, Graphics.HCENTER | Graphics.BASELINE);

}

}

References

Vikram Goyal , J2ME Tutorial, http://today.java.net/pub/a/today/2005/02/09/j2me1.html, 02/09/2005

Michael Juntao Yuan & Kevin Sharp, JavaWorld.com, www.javaworld.com/javaworld/jw-05-2005/jw-0516-midp.html, 05/16/2005

http://developer.symbian.com/main/oslibrary/java_papers/midp.jsp http://developers.sun.com/mobility/apis/articles/wsa/ Eric Giguere, Databases and MIDP, Part 1: Understanding the Record

Management System, http://developers.sun.com/mobility/midp/articles/databaserms, 2004

http://www.java2s.com/Code/Java/J2ME/Persistencestoringandshowinggamescores.htm

http://today.java.net/pub/a/today/2005/05/03/midletUI.html?page=4

Time for practice

top related