Programování v jazyce Java - J2ME

Kurz programování v Javě pro mobilní telefony - 4. díl

 Úvodem  |   Kurz programování v Javě  |  Kurz programování v Javě pro mobilní telefony  |   Soubory ke stažení  |  Otázky a odpovědi

 

Úvod

Vítejte u čtvrtého dílu kurzu programování pro mobilní telefony. Minulé díly byly takové zahřívací, protože od teď budeme probírat jednotlivé prvky podrobněji. Nejdříve popíši prvek (např. Display) a jeho funkce, potom konstruktor a metody, máte se na co těšit.


Grafikcé uživatelské rozhraní - pokračování

Všechny třídy pro tvorbu grafického uživatelského rozhraní jsou v balíku javax.microedition.lcdui a javax.microedition.lcdui.game. Většina poznámek jsou více nebo méně překladem dokumentace, ale u některých jsem použil vlastní vysvětlení, nebo trochu upravil překlad. Proto pokud vám něco nebude zdát jasné, stačí si prohlédnout dokumentaci API, ale snažil jsem se poznámky udělat co nejlepší, aby vše bylo jasné.

balík javax.microedition.lcdui
Rozhraní Poznámky
Choice definuje API pro komponenty GUI implementující výběr z počtu předem daných možností.
CommandListener využívá se pro třídy které chtějí zachytávat vysokoúrovňové události
ItemCommandListener posluchač pro upozornění na událost která vznikla na objektu typu Item
ItemStateListener používá se pro zjištění každé změny v objektu typu Form
Třídy Poznámky
Alert zobrazuje různé zpravy na určitoý čas
AlertType obsahuje typ prvku Alert
Canvas základní třída při použití nízkoúrovňového api
ChoiceGroup skupina elementů ze které lze jednotlivé elemety označit (vybrat)
Command třída zapouzdřující různé věci o akci (např. stisknutí tlačítka)
CustomItem základová třída používající se k vytvoření svého vlastního prvku GUI
DateField prvek pro zobrazení data
Display třída odkazující na plochu displeje, kterou může midlet využít
Displayable základová třída pro všechny zobrazitelné prvky
Font obsahuje parametry fontů
Form kontejnerová komponenta do které se vkládají všechny vysokoúrovňové prvky
Gauge třída reprezentuje posuvníky a ukazatele (hlasitost, zbývající čas...)
Graphics třída používající se k přímému kreslení různých geometrických tvarů
Image obsahuje data obrázku, který reprezentuje
ImageItem potomek Item obsahující obrázek a doplňující text
Item základová třída pro prvky, které se dají vložit do objektu typu Form
List obrazovka obsahující seznam voleb
Screen obecná základová třída všech vysokoúrovňových prvků
Spacer prázndý neinteraktivní objekt typu Item který má nastavitelnou výšku a šířku, používá se pro vytvoření prázdného místa
StringItem potomek Item obsahující text
TextBox potomek Screen, do kterého lze psát text
TextField zobrazí výzvu s polem do kterého lze psát
Ticker zobrazuje posunující se text



balík javax.microedition.lcdui.game
Rozhraní Poznámky
neobsahuje žádné rozhraní
Třídy Poznámky
GameCanvas hlavní třída pro tvorbu GUI her
Layer abstraktní třída reprezentující herní prvek
LayerManager třída pro spravování více objektů typu Layer
Sprite pomocí třídy lze vytvářet různé animované herní objetky
TiledLayer v mřížce zobrazuje různé obrázky, lze ji dobře využít pro herní pozadí s malými nároky na paměť



Třída Display

Základem zobrazení aplikací je třída Display. Třída Display reprezentuje logickou obrazovku zařízení. Ve všech našich programech jsme ji využívali, protože bez ní to nejde. Vždy jsme pomocí statické metody getDisplay() získali odkaz na objekt třídy Display, který jsme používali pro zobrazení. Volat by se metoda getDisplay() měla až v metodě startApp(), ne dříve například v konstruktoru aplikace.

Třída Display
Konstanty Poznámky
static int ALERT imageType obrázek pro použití v třídě Alert
static int CHOICE_GROUP_ELEMENT imageType obrázek pro použití v třídě ChoiceGroup
static int COLOR_BACKGROUND učuje kterou barvu chceme vrátit při použití metody getColor()
static int COLOR_BORDER učuje kterou barvu chceme vrátit při použití metody getColor()
static int COLOR_FOREGROUND učuje kterou barvu chceme vrátit při použití metody getColor()
static int COLOR_HIGHLIGHTED_BACKGROUND učuje kterou barvu chceme vrátit při použití metody getColor()
static int COLOR_HIGHLIGHTED_BORDER učuje kterou barvu chceme vrátit při použití metody getColor()
static int COLOR_HIGHLIGHTED_FOREGROUND učuje kterou barvu chceme vrátit při použití metody getColor()
static int LIST_ELEMENT imageType obrázek pro použití v třídě List
Konstruktory Poznámky
nemá veřejné konstruktory
Metody Poznámky
void callSerially(Runnable r) způsobí, že se nejprve dokončí metoda repaint() a až potom metoda run() objetku Runnable, který předáme jako parametr
boolean flashBacklight(int duration) rozsvěcí a zhasíná podvícení displeje zařízení na určitou dobu, pokud zařízení midletu nedovolý podsvícení ovládat vrací false, jinak true
int getBestImageHeight(int imageType) vrací nejlepší výšku pro obrázek typu který specifikujeme (např. ALERT)
int getBestImageWidth(int imageType) vrací nejlepší šířku pro obrázek typu který specifikujeme (např. ALERT)
int getBorderStyle(boolean highlighted) vrací typ okrajů buď, Graphics.DOTTED nebo Graphics.SOLID
int getColor(int colorSpecifier) vrací barvu prvků, které zadáme (např. COLOR_BORDER)
Displayable getCurrent() vrací aktuální objekt typu Displayable
static Display getDisplay(MIDlet m) vrací odkaz na objekt typu Display, dislpej aktuální pro tento midlet
boolean isColor() pokud je displej barevný, vrátí true, jinak false
int numAlphaLevels() vrací počet alpha stupňů (stupňů průhlednosti)
int numColors() vrací počet barev, pokud je displej barevný, jinak počet stupňů šedi
void setCurrent(Alert alert, Displayabel nextDisplayable) zobrazí nejdříve objekt Alert a následně objekt Displayable
void setCurrent(Displayable nextDisplayable) zobrazí objekt Displayable, který předáme jako parametr
void setCurrentItem(Item item) zobrazí položku Item, kterou předáme jako parametr
boolean vibrate(int duration) zapína vibrátor zařízení, pokuda nějaké má a midlet k němu má přístup, vrací true, jinak false

Závěr

Dnes jsme si řekli jaké třídy a rozhraní obsahujíc balíky javax.microedition.lcdui a javax.microedition.lcdui.game. A podrobně rozebrali třídu Display. Příště se můžete těšit na další třídy.



Alen Dvořák