Java Mobile
4.3.2. Gauge:
Gauge dùng để biu din tiến độ hoàn thành mt vic nào đó (download, upload...)
hoc cp độ t thp đến cao (ca âm lượng, độ khó...). Gauge đặc trưng bi hai giá
tr: giá tr hin hành và giá tr cc đại cho phép. Giá tr hin hành này luôn được duy
trì gia 0 và giá tr cc đại. Gauge gm hai dng:
Chế độ tương tác (Interactive mode): Trong chế độ này, đối tượng
Gauge s được v dng các thanh song song có chiu cao tăng dn
biu th các cp độ t thp đến cao. Người s dng có th điu chnh
giá tr hin thi ca Gauge bng các phím bm. VD: điu chnh âm
lượng cao thp.
Hình 4.3 Giao din đối tượng Gauge chế độ tương tác
Chế độ không tương tác (Non-interactive mode): Đối tượng được biu
din dng các thanh song song có chiu cao bng nhau, người dùng
không được phép thay đổi giá tr ca nó. Người lp trình s lp trình
cho đối tượng này t động cp nht giá tr theo thi gian.
48
Java Mobile
Hình 4.4 Giao din đối tượng Gauge chế độ không tương tác
Các phương thc và chc năng tương ng ca lp Gauge:
Lp Gauge: javax.microedition.lcdui.Gauge
Phương thc Chc năng
Gauge (String label, boolean interactive,
int maxValue, int initValue)
Khi to mt đối tượng Gauge
int getValue () Ly giá tr hin thi ca Gauge
void setValue (int value) Gán giá tr cho đối tượng Gauge
int getMaxValue () Ly giá tr cc đại cho phép ca Gauge
void setMaxValue (int maxValue) Gán giá tr cc đại cho phép cho
Gauge
boolean isInteractive () Kim tra Gauge có thuc chế độ tương
tác không
Bng 4.5 Lp Gauge
VD:
//to 1 biến Gauge cho phép người dùng điu chnh âm thanh (chế độ tương tác)
Gauge gVolume= new Gauge (“Volume”, true, 6, 2);
//gn Gauge vào Form
fmMain.append(gVolume);
fmMain.setCommandListener(this);
49
Java Mobile
//to 1 biến Gauge biu din tiến trình Download (chế độ không tương tác):
Gauge gDownload = new Gauge(“Download Progress”, false, 20,1);
//gn Gauge vào Form
fmMain.append(gDownload);
fmMain.setCommandListener(this);
//cp nht giá tr liên tc cho Gauge bng cách s dng 1 biến timer
//khong cách mi ln cp nht là 1000 mili giây
Timer tTimer = new Timer();
DTTask ttTimerTask = new DTTask(); //class DTTask extends TimerTask
tTimer.scheduleAtFixedRate (ttTimerTask, 0, 1000);
//lp DDTask được viết bên trong MIDlet
private class DTTask extends TimerTask{
public final void run () {
//nếu giá tr hin ti ca gDownload < giá tr cc đại thì tiếp tc tăng, không thì
dng li
if (gDownload.getValue() < gDownload.getMaxValue())
gDownload.setValue(gDownload.getValue()+1);
else
cancel(); //xoá b định thi
}
}
50
Java Mobile
4.3.3. String Item:
Đối tượng StringItem dùng để hin th 1 đon văn bn lên màn hình. Người dùng
ch đựơc phép xem mà không được thay đổi ni dung đon văn bn này.
Các phương thc và chc năng tương ng ca lp StringItem:
Lp StringItem: javax.microedition.lcdui.StringItem
Phương thc Chc năng
StringItem (String label, String text) Khi to mt đối tượng StringItem
String getText () Ly ni dung đon văn bn
void setText (String text) Gán ni dung đon văn bn cn hin th
Bng 4.6 Lp StringItem
Để ly giá tr nhãn (label) hay thay đổi ni dung nhãn có th dùng các phương thc
getLabel(), setLabel(String label) ca lp Item.
VD:
//to mt đối tượng StringItem
StringItem siText = new StringItem(“User: ”, “John”);
//gn vào form
fmMain.append(siText);
...
//sau đó mun hin th 1 ni dung khác, ch cn thay đổi label và text ca đối tượng,
//không cn to 1 đối tượng StringItem mi.
siText.setLabel(“UserID: ”);
siText.setText(“12345”);
51
Java Mobile
Hình 4.5 Giao din đối tượng StringItem
Đối tượng lp String cũng có th append() vào Form để hin th 1 đon văn bn
nhưng không có hai phn nhãn và ni dung riêng bit như StringItem. Tuu cu
ca chương trình mà người lp trình có th la chn đối tượng phù hp để s dng.
52