
Java Mobile
4.3.2. Gauge:
Gauge dùng để biểu diễn tiến độ hoàn thành một việc nào đó (download, upload...)
hoặc cấp độ từ thấp đến cao (của âm lượng, độ khó...). Gauge đặc trưng bởi hai giá
trị: giá trị hiện hành và giá trị cực đại cho phép. Giá trị hiện hành này luôn được duy
trì giữa 0 và giá trị cực đại. Gauge gồm hai dạng:
• Chế độ tương tác (Interactive mode): Trong chế độ này, đối tượng
Gauge sẽ được vẽ dạng các thanh song song có chiều cao tăng dần
biểu thị các cấp độ từ thấp đến cao. Người sử dụng có thể điều chỉnh
giá trị hiện thời của Gauge bằng các phím bấm. VD: điều chỉnh âm
lượng cao thấp.
Hình 4.3 Giao diện đối tượng Gauge chế độ tương tác
• Chế độ không tương tác (Non-interactive mode): Đối tượng được biểu
diễn dạng các thanh song song có chiều cao bằng nhau, người dùng
không được phép thay đổi giá trị của nó. Người lập trình sẽ lập trình
cho đối tượng này tự động cập nhật giá trị theo thời gian.
48

Java Mobile
Hình 4.4 Giao diện đối tượng Gauge chế độ không tương tác
Các phương thức và chức năng tương ứng của lớp Gauge:
Lớp Gauge: javax.microedition.lcdui.Gauge
Phương thức Chức năng
Gauge (String label, boolean interactive,
int maxValue, int initValue)
Khởi tạo một đối tượng Gauge
int getValue () Lấy giá trị hiện thời của Gauge
void setValue (int value) Gán giá trị cho đối tượng Gauge
int getMaxValue () Lấy giá trị cực đại cho phép của Gauge
void setMaxValue (int maxValue) Gán giá trị cực đại cho phép cho
Gauge
boolean isInteractive () Kiểm tra Gauge có thuộc chế độ tương
tác không
Bảng 4.5 Lớp Gauge
VD:
//tạo 1 biến Gauge cho phép người dùng điều chỉnh âm thanh (chế độ tương tác)
Gauge gVolume= new Gauge (“Volume”, true, 6, 2);
//gắn Gauge vào Form
fmMain.append(gVolume);
fmMain.setCommandListener(this);
49

Java Mobile
//tạo 1 biến Gauge biểu diễn tiến trình Download (chế độ không tương tác):
Gauge gDownload = new Gauge(“Download Progress”, false, 20,1);
//gắn Gauge vào Form
fmMain.append(gDownload);
fmMain.setCommandListener(this);
//cập nhật giá trị liên tục cho Gauge bằng cách sử dụng 1 biến timer
//khoảng cách mỗi lần cập nhật là 1000 mili giây
Timer tTimer = new Timer();
DTTask ttTimerTask = new DTTask(); //class DTTask extends TimerTask
tTimer.scheduleAtFixedRate (ttTimerTask, 0, 1000);
//lớp DDTask được viết bên trong MIDlet
private class DTTask extends TimerTask{
public final void run () {
//nếu giá trị hiện tại của gDownload < giá trị cực đại thì tiếp tục tăng, không thì
dừng lại
if (gDownload.getValue() < gDownload.getMaxValue())
gDownload.setValue(gDownload.getValue()+1);
else
cancel(); //xoá bộ định thời
}
}
50

Java Mobile
4.3.3. String Item:
Đối tượng StringItem dùng để hiển thị 1 đoạn văn bản lên màn hình. Người dùng
chỉ đựơc phép xem mà không được thay đổi nội dung đoạn văn bản này.
Các phương thức và chức năng tương ứng của lớp StringItem:
Lớp StringItem: javax.microedition.lcdui.StringItem
Phương thức Chức năng
StringItem (String label, String text) Khởi tạo một đối tượng StringItem
String getText () Lấy nội dung đoạn văn bản
void setText (String text) Gán nội dung đoạn văn bản cần hiển thị
Bảng 4.6 Lớp StringItem
Để lấy giá trị nhãn (label) hay thay đổi nội dung nhãn có thể dùng các phương thức
getLabel(), setLabel(String label) của lớp Item.
VD:
//tạo một đối tượng StringItem
StringItem siText = new StringItem(“User: ”, “John”);
//gắn vào form
fmMain.append(siText);
...
//sau đó muốn hiển thị 1 nội dung khác, chỉ cần thay đổi label và text của đối tượng,
//không cần tạo 1 đối tượng StringItem mới.
siText.setLabel(“UserID: ”);
siText.setText(“12345”);
51

Java Mobile
Hình 4.5 Giao diện đối tượng StringItem
Đối tượng lớp String cũng có thể append() vào Form để hiển thị 1 đoạn văn bản
nhưng không có hai phần nhãn và nội dung riêng biệt như StringItem. Tuỳ yêu cầu
của chương trình mà người lập trình có thể lựa chọn đối tượng phù hợp để sử dụng.
52

