midlet development j2me

31
 !"#$ &'" #()(*+,-(./0  !"#$%& ()*%& + ,$-& .#/%0, /  12334 $+56+*74.(. 87-,(9( '.4)(934/: +; <,,*4(= >?4(.?(3

Upload: gunnar-zortan

Post on 16-Jul-2015

36 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Midlet Development J2ME

5/14/2018 Midlet Development J2ME - slidepdf.com

http://slidepdf.com/reader/full/midlet-development-j2me 1/33

 

MIDPGUIDevelopment:

 Alert,List,Form,TextBox JussiPohjolainen

TampereUniversityofAppliedSciences

Page 2: Midlet Development J2ME

5/14/2018 Midlet Development J2ME - slidepdf.com

http://slidepdf.com/reader/full/midlet-development-j2me 2/33

 

DisplayableClassHierarchy

 javax.microedi-on.lcdui  javax.microedi-on.lcdui.game

Displayable

Alert List Form TextBox

Screen

Canvas GameCanvas

Page 3: Midlet Development J2ME

5/14/2018 Midlet Development J2ME - slidepdf.com

http://slidepdf.com/reader/full/midlet-development-j2me 3/33

 

TextBox

•  Togettheuserinput•  TextBox a = new TextBox(String

title, String text, int maxSize,

int constraints)

Page 4: Midlet Development J2ME

5/14/2018 Midlet Development J2ME - slidepdf.com

http://slidepdf.com/reader/full/midlet-development-j2me 4/33

 

TypesandFlags

•  Types

 –  TextField.ANY –  TextField.NUMERIC –  TextField.DECIMAL –  TextField.PHONENUMBER –  TextField.EMAILADDR –  TextField.URL

•  Flags –  TextField.PASSWORD

 –  TextField.UNEDITABLE

 –  TextField.NON_PREDICTIVE

 –  TextField.INITIAL_CAPS_WORD

 –  TextField.

INITIAL_CAPS_SENTENCE

Page 5: Midlet Development J2ME

5/14/2018 Midlet Development J2ME - slidepdf.com

http://slidepdf.com/reader/full/midlet-development-j2me 5/33

 

TextBoxUsage

TextBox textbox =

new TextBox("Sähköposti",

"",

64,

TextField.EMAILADDR |

TextField.PASSWORD);

Page 6: Midlet Development J2ME

5/14/2018 Midlet Development J2ME - slidepdf.com

http://slidepdf.com/reader/full/midlet-development-j2me 6/33

 

DisplayableClassHierarchy

 javax.microedi-on.lcdui  javax.microedi-on.lcdui.game

Displayable

Alert List Form TextBox

Screen

Canvas GameCanvas

Page 7: Midlet Development J2ME

5/14/2018 Midlet Development J2ME - slidepdf.com

http://slidepdf.com/reader/full/midlet-development-j2me 7/33

Alerts

•  Therearetwotypesofalerts – TimedAlert

•  Displayedcertainamountofme

 – ModalAlert•  Demandsuserconfirmaon

ModalAlert

 

Page 8: Midlet Development J2ME

5/14/2018 Midlet Development J2ME - slidepdf.com

http://slidepdf.com/reader/full/midlet-development-j2me 8/33

Alert-class

•  Constructor – public Alert(String title, StringalertText, Image alertImage, AlertType alerttype);!

•  Methods – setTimeOut(...)! – setTimeOut(Alert.Forever)! – addCommand(...)!

•  AlertTypes –  ALARM, CONFIRMATION, ERROR, INFO,WARNING!

 

Page 9: Midlet Development J2ME

5/14/2018 Midlet Development J2ME - slidepdf.com

http://slidepdf.com/reader/full/midlet-development-j2me 9/33

DisplayableClassHierarchy

 javax.microedi-on.lcdui  javax.microedi-on.lcdui.game

Displayable

Alert List Form TextBox

Screen

Canvas GameCanvas

 

Page 10: Midlet Development J2ME

5/14/2018 Midlet Development J2ME - slidepdf.com

http://slidepdf.com/reader/full/midlet-development-j2me 10/33

EXCLUSIVE,MULTIPLEandIMPLICIT

 

Page 11: Midlet Development J2ME

5/14/2018 Midlet Development J2ME - slidepdf.com

http://slidepdf.com/reader/full/midlet-development-j2me 11/33

ConstrucngLists

•  Whenyoucreatealist,youdefinelist's

 –  type(EXCLUSIVE,MULTIPLE,IMPLICIT)

 –  tle –  stringelementsandimages(voluntary)

•  API:–  public List(String title, int type):

–  public List(String title, int type, String [] stringelements, Image

[] imageElements);

•  Scrollingisautomacallyavailable

•  Itispossiblytoaddelementstothelistwithappend-

method.

 

Page 12: Midlet Development J2ME

5/14/2018 Midlet Development J2ME - slidepdf.com

http://slidepdf.com/reader/full/midlet-development-j2me 12/33

ListExample1

public class MyList extends MIDlet{

private List mList;

public MyList() {

 mList = new List(”Wanna Buy?”, Choice.MULTIPLE);

 mList.append(“Herring”, null);

 mList.append(“Goose Liver”, null);

 mList.append(“Jelly”, null);

}

public void startApp() {

Display.getDisplay(this).setCurrent(mList);

}

public void destroyApp(boolean unconditional) {}

public void pauseApp() {}

}

 

Page 13: Midlet Development J2ME

5/14/2018 Midlet Development J2ME - slidepdf.com

http://slidepdf.com/reader/full/midlet-development-j2me 13/33

ListExample2

public MyList() {

String [] elements =

{"hyytelöä", "kananmaksaa",

"ituja"};

mLista = new List("Haluatko

ostaa?", Choice.MULTIPLE,

elements, null);

}

 

Page 14: Midlet Development J2ME

5/14/2018 Midlet Development J2ME - slidepdf.com

http://slidepdf.com/reader/full/midlet-development-j2me 14/33

AddingandRemovingListelements

•  Itispossibletoaddandremovelistelements

•  Theelementsareaccessiblebyindex(0...n)

•  Replacingaelement:set(...)

• Addingelement:append(...)

•  Addingelementtoacertainplace:insert(...)

•  Findingelement:String getString(int n)

•  Removingelement:void delete(int n)

 

Page 15: Midlet Development J2ME

5/14/2018 Midlet Development J2ME - slidepdf.com

http://slidepdf.com/reader/full/midlet-development-j2me 15/33

MIDP2.0List

•  Howdoyoutreattheelements,iftheydon't

fitintomobiledevice'sscreen?

 – setPolicy(...);•  Choice.TEXT_WRAP_ON,Choice.TEXT_WRAP_OFF,Choice.TEXT_WRAP_DEFAULT

•  Changingthefont: – setFont(...)

 

Page 16: Midlet Development J2ME

5/14/2018 Midlet Development J2ME - slidepdf.com

http://slidepdf.com/reader/full/midlet-development-j2me 16/33

ListSelecon

•  Howtofindoutwhatelementuserselected? –  public boolean isSelected(int i)! –  public int getSelectedIndex()! –  public void setSelectedIndex(int i, boolean s)!

•  SeeListExample.java

 

Page 17: Midlet Development J2ME

5/14/2018 Midlet Development J2ME - slidepdf.com

http://slidepdf.com/reader/full/midlet-development-j2me 17/33

DisplayableClassHierarchy

 javax.microedi-on.lcdui  javax.microedi-on.lcdui.game

Displayable

Alert List Form TextBox

Screen

Canvas GameCanvas

 

Page 18: Midlet Development J2ME

5/14/2018 Midlet Development J2ME - slidepdf.com

http://slidepdf.com/reader/full/midlet-development-j2me 18/33

IntrotoForm

•  FormisaGUI-componentthatcanholdotherGUI

components

•  TheseotheGUI-componentsarecalleditems.

•  Iftherearemanyitems,theformwillprovidescrollingmechanism.

•  Constructors: –  public Form(String title)! –  public Form(String title, Item[] items)!

 

Page 19: Midlet Development J2ME

5/14/2018 Midlet Development J2ME - slidepdf.com

http://slidepdf.com/reader/full/midlet-development-j2me 19/33

HandlingItems

•  AddingItemstotheForm: –  Form a = new Form(“otsikko”);! –  a.append(Item item);! –  a.append(String str);! –  a.append(Image image);!

•  Everyitemhasanindex: –  a.set(int index, Item item)! –  a.insert(int index, Item item)! –  a.delete(int index)!

•  Othermethods: –  int size();! –  Item get(int index)!

 

Page 20: Midlet Development J2ME

5/14/2018 Midlet Development J2ME - slidepdf.com

http://slidepdf.com/reader/full/midlet-development-j2me 20/33

SimpleExample

mForm = new Form("Otsikko");

mForm.append("moi");

mForm.append("hei");

mForm.append("tere");

 

Page 21: Midlet Development J2ME

5/14/2018 Midlet Development J2ME - slidepdf.com

http://slidepdf.com/reader/full/midlet-development-j2me 21/33

UsingItems

•  Therearemanyitems.

•  javax.microedition.lcdui.Item:! – ChoiceGroup! – CustomItem // We will look this..! – DateField! – Gauge! – ImageItem // .. and this later! – Spacer! – StringItem ! – TextField!

 

Page 22: Midlet Development J2ME

5/14/2018 Midlet Development J2ME - slidepdf.com

http://slidepdf.com/reader/full/midlet-development-j2me 22/33

ItemLayout

•  EveryFormitemcanhavealayout:

 –  LAYOUT_LEFT! –  LAYOUT_RIGHT! – LAYOUT_CENTER

! –  ...!

•  SeeAPI!

 

Page 23: Midlet Development J2ME

5/14/2018 Midlet Development J2ME - slidepdf.com

http://slidepdf.com/reader/full/midlet-development-j2me 23/33

UsingItemLayout

StringItem layoutLeft = new StringItem("Layout: ", "LEFT");

layoutLeft.setLayout(Item.LAYOUT_LEFT);

StringItem layoutCenter = new StringItem("Layout: ", "CENTER");

layoutCenter.setLayout(Item.LAYOUT_CENTER);

StringItem layoutRight = new StringItem("Layout: ", "RIGHT");

layoutRight.setLayout(Item.LAYOUT_RIGHT);

 mForm.append(layoutLeft);

 mForm.append(layoutCenter);

 mForm.append(layoutRight);

 

Page 24: Midlet Development J2ME

5/14/2018 Midlet Development J2ME - slidepdf.com

http://slidepdf.com/reader/full/midlet-development-j2me 24/33

StringItem

•  Representsasimple“Label” 

Form form = new Form("Title");

StringItem st = new StringItem("Label: ";

"Value");

form.append(stringItem);

 

Page 25: Midlet Development J2ME

5/14/2018 Midlet Development J2ME - slidepdf.com

http://slidepdf.com/reader/full/midlet-development-j2me 25/33

Item:Spacer

•  Spacerprovidesemptyspaceintheform.

 – Spacer empty = new Spacer(100,50); !

 

Page 26: Midlet Development J2ME

5/14/2018 Midlet Development J2ME - slidepdf.com

http://slidepdf.com/reader/full/midlet-development-j2me 26/33

Item:TextField

•  TextField: –  public TextField(String label,String text, int

 maxSize, intconstraints)!

•  Constraints(sameasinTextBox) –  ANY, NUMERIC,DECIMAL,PHONENUMBER,EMAILADDR, URL!

 –  PASSWORD, SENSITIVE;UNEDITABLE...!

 

Page 27: Midlet Development J2ME

5/14/2018 Midlet Development J2ME - slidepdf.com

http://slidepdf.com/reader/full/midlet-development-j2me 27/33

Item:DateField

•  DateandTimeinput. –  public DateField(String label, int mode)! –  public DateField(String label, int mode,TimeZone timezone)!

•  mode – DATE, TIME, DATE_TIME!

•  GetandSet-methods: – public Date getDate()! – public void setDate()!

 

Page 28: Midlet Development J2ME

5/14/2018 Midlet Development J2ME - slidepdf.com

http://slidepdf.com/reader/full/midlet-development-j2me 28/33

DateFieldImages

 

Page 29: Midlet Development J2ME

5/14/2018 Midlet Development J2ME - slidepdf.com

http://slidepdf.com/reader/full/midlet-development-j2me 29/33

Item:Gauge

•  Gaugepresentsintegerinagraphicalform.–  public Gauge(String label, boolean interactive,int maxValue, int initialValue)

•  Byusingparameterinteracveitispossibletodefine

cantheusermodifythegauge.•  InialValuecanalsobe:

•  CONTINUOUS_IDLE !•  INCREMENTAL_IDLE !•  CONTINUOUS_RUNNING !•  INCREMENTAL_UPDATING !

 

Page 30: Midlet Development J2ME

5/14/2018 Midlet Development J2ME - slidepdf.com

http://slidepdf.com/reader/full/midlet-development-j2me 30/33

GaugeImages

Gauge kake1 = new Gauge("Editoitava", true, 100, 0);

Gauge kake2 = new Gauge("Ei-editoitava", false, 100,

50);

Gauge kake3 = new Gauge("INCREMENTAL_UPDATING",

false, Gauge.INDEFINITE,

Gauge.INCREMENTAL_UPDATING);

Gauge kake6 = new Gauge("CONTINUOUS_RUNNING",false, Gauge.INDEFINITE,

Gauge.CONTINUOUS_RUNNING);

 

Page 31: Midlet Development J2ME

5/14/2018 Midlet Development J2ME - slidepdf.com

http://slidepdf.com/reader/full/midlet-development-j2me 31/33

Item:ChoiceGroup

•  LikeList – public ChoiceGroup(String label,int choiceType, String []

elements, Image[] imageElements)!•  Choicetype

 – EXCLUSIVE! – MULTIPLE! – MIDP 2.0: POPUP!

 

Page 32: Midlet Development J2ME

5/14/2018 Midlet Development J2ME - slidepdf.com

http://slidepdf.com/reader/full/midlet-development-j2me 32/33

ChoiceGroupImages

String [] lista = {"suomi", "ruotsi"};

ChoiceGroup choicegroup = new ChoiceGroup("Valitse

maa", Choice.POPUP, lista, null);

 

Page 33: Midlet Development J2ME

5/14/2018 Midlet Development J2ME - slidepdf.com

http://slidepdf.com/reader/full/midlet-development-j2me 33/33

ItemsandEventHandling

•  InsteadofusingCommandListeneryounow

useItemStateListener.

•  Settheeventsourcetoformandthelistener

hastoimplementItemStateListenerinterface.•  Theinterfacehasonlyonemethod:

 – itemStateChanged(Item item)!• Example