java me lab2-slides (gui programming)
DESCRIPTION
TRANSCRIPT
![Page 1: Java me lab2-slides (gui programming)](https://reader033.vdocuments.net/reader033/viewer/2022050808/54b6fc184a7959f5698b478f/html5/thumbnails/1.jpg)
Lab 4 (Lab 2 on Java ME)Java ME GUI Programming
Pervasive Computing Lab
Prepared by: Tuan Nguyen
![Page 2: Java me lab2-slides (gui programming)](https://reader033.vdocuments.net/reader033/viewer/2022050808/54b6fc184a7959f5698b478f/html5/thumbnails/2.jpg)
MIDP User interface
High level
Low level
Screen
Alert TextBoxListForm
GraphicsCanvas
![Page 3: Java me lab2-slides (gui programming)](https://reader033.vdocuments.net/reader033/viewer/2022050808/54b6fc184a7959f5698b478f/html5/thumbnails/3.jpg)
Form
Picture from: http://www.javaworld.com/javaworld/jw-05-2005/images/jw-0516-midp1.jpg
![Page 4: Java me lab2-slides (gui programming)](https://reader033.vdocuments.net/reader033/viewer/2022050808/54b6fc184a7959f5698b478f/html5/thumbnails/4.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)
![Page 5: Java me lab2-slides (gui programming)](https://reader033.vdocuments.net/reader033/viewer/2022050808/54b6fc184a7959f5698b478f/html5/thumbnails/5.jpg)
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);
![Page 6: Java me lab2-slides (gui programming)](https://reader033.vdocuments.net/reader033/viewer/2022050808/54b6fc184a7959f5698b478f/html5/thumbnails/6.jpg)
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);
![Page 7: Java me lab2-slides (gui programming)](https://reader033.vdocuments.net/reader033/viewer/2022050808/54b6fc184a7959f5698b478f/html5/thumbnails/7.jpg)
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
![Page 8: Java me lab2-slides (gui programming)](https://reader033.vdocuments.net/reader033/viewer/2022050808/54b6fc184a7959f5698b478f/html5/thumbnails/8.jpg)
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.
![Page 9: Java me lab2-slides (gui programming)](https://reader033.vdocuments.net/reader033/viewer/2022050808/54b6fc184a7959f5698b478f/html5/thumbnails/9.jpg)
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); }}
...
![Page 10: Java me lab2-slides (gui programming)](https://reader033.vdocuments.net/reader033/viewer/2022050808/54b6fc184a7959f5698b478f/html5/thumbnails/10.jpg)
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.
![Page 11: Java me lab2-slides (gui programming)](https://reader033.vdocuments.net/reader033/viewer/2022050808/54b6fc184a7959f5698b478f/html5/thumbnails/11.jpg)
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);
![Page 12: Java me lab2-slides (gui programming)](https://reader033.vdocuments.net/reader033/viewer/2022050808/54b6fc184a7959f5698b478f/html5/thumbnails/12.jpg)
Exercise:Improve Mobile Restaurant App
Find the completed code for this app on the subject web site.
![Page 13: Java me lab2-slides (gui programming)](https://reader033.vdocuments.net/reader033/viewer/2022050808/54b6fc184a7959f5698b478f/html5/thumbnails/13.jpg)
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
![Page 14: Java me lab2-slides (gui programming)](https://reader033.vdocuments.net/reader033/viewer/2022050808/54b6fc184a7959f5698b478f/html5/thumbnails/14.jpg)
Graphics
![Page 15: Java me lab2-slides (gui programming)](https://reader033.vdocuments.net/reader033/viewer/2022050808/54b6fc184a7959f5698b478f/html5/thumbnails/15.jpg)
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);
}
}
![Page 16: Java me lab2-slides (gui programming)](https://reader033.vdocuments.net/reader033/viewer/2022050808/54b6fc184a7959f5698b478f/html5/thumbnails/16.jpg)
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
![Page 17: Java me lab2-slides (gui programming)](https://reader033.vdocuments.net/reader033/viewer/2022050808/54b6fc184a7959f5698b478f/html5/thumbnails/17.jpg)
Time for practice