Tải bản đầy đủ (.doc) (7 trang)

LẬP TRÌNH J2ME TRÊN ECLIPSE 02

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (133.62 KB, 7 trang )

LẬP TRÌNH J2ME TRÊN ECLIPSE
I. Giới thiệu Eclipse
Những ai đã từng lập trình Java trên Eclipse thường chỉ có một nhận xét: hài lòng.
Thật vậy, công cụ mã nguồn mở được viết bằng Java của anh cả IBM là một công cụ
phát triển phần mềm mạnh mẽ. Eclipse được phát triển theo mô hình nền (platform), tự
nó không cung cấp các chức năng cho người dùng cuối mà chỉ cung cấp một kiến trúc
mở để các plugin gắn vào nó làm việc đó. Chính vì vậy Eclipse giống như một hệ điều
hành để chúng ta cài đặt các công cụ cần thiết cho quá trình phát triển ứng dụng. Nó
làm hài lòng giới lập trình viên Java vì có khá nhiều plugin mã nguồn mở phục vụ công
việc. Hơn nữa, nếu thích, bạn còn dễ dàng phát triển một plugin phục vụ mục đích của
mình.
II. EclipseME
EclipseME là một Eclipse plugin dành riêng cho phát triển ứng dụng J2ME được phát
triển bởi Craig Setera. EclipseME có đầy đủ các chức năng của một J2ME IDE như:
tạo J2ME project, tạo MIDlet, soạn thảo file jad, chạy ứng dụng MIDlet… Điều đặc
biệt hơn cả là EclipseME thừa hưởng các tính năng Java IDE tuyệt vời từ Eclipse.
III. Cài đặt
1. Download: Xem địa chỉ download miễn phí ở cuối bài viết.
2. Yêu cầu:
Để chạy được EclipseME, bạn cần phải có J2ME Wireless Toolkit (WTK) 1.0, JDK
1.4 và Eclipse 3.0M9 trở lên.
3. Cài đặt
EclipseME:
Để cài đặt EclipseME,
bạn chỉ cần giải nén file
zip đến thư mục plugins
của Eclipse. Ví dụ, nếu
bạn đã cài Eclipse trên
C:\eclipse, bạn sẽ cài
EclipseME trên
C:\eclipse\plugins. Khởi


động lại Eclipse nếu nó
đang chạy để
EclipseME đuợc khởi
động.
4. Cấu hình:
EclipseME đòi hỏi cần
phải cấu hình ít nhất
một WTK cho nó. Để
cấu hình WTK, bạn hãy
thực hiện theo các bước
sau đây:
- Khởi động Eclipse
Hình 1 - Cấu hình WTK
- Vào menu Window -> Preferences. Mở rộng mục J2ME, chọn mục Platform
Components. Màn hình xuất hiện như trên hình 1.
- Trong khung bên phải, kích chuột phải vào mục Wireless Toolkits, kích vào Add
Wireless Toolkit.
- Cửa sổ hiện ra yêu cầu bạn chọn thư mục cài đặt WTK. Nhấn nút Browse và
chọn thư mục WTK bạn đã cài đặt, ví dụ: C:\WTK1.0
- Nhất Finish rồi nhấn OK. Quá trình cài đặt và cấu hình đã hoàn tất.
IV. Tạo và chạy ứng dụng
1. Tạo J2ME project
Để tạo một J2ME project, bạn hãy làm theo các bước sau đây:
- Vào menu File -> New -> Project
- Cửa sổ New Project hiện ra. Hãy mở rộng mục J2ME, chọn J2ME MIDlet
Suite. Kích Next.
- Trong cửa sổ kế tiếp, hãy gõ tên project (ví dụ HelloWorld) và chọn thư mục
chứa project (ví dụ C:\projects\J2ME). Kích Next.
- Bước kế tiếp nầy cho phép bạn chọn nền WTK mà bạn đã cấu hình. EclipseME
cho phép cấu hình nhiều nền J2ME (WTK1.0, WTK2.1…) nên bạn cần phải chọn

một nền J2ME bạn muốn, chẳng hạn: J2ME Wireless Toolkit 1.0.4 Platform.
Kích Next.
- Cuối cùng, bạn có thể thêm các thư viện cần dùng, thêm thư mục chứa source
v.v… Cũng có thể để mọi thứ theo mặc định. Kích Finish để kết thúc quá trình
tạo J2ME project. Bây giờ bạn đã có một J2ME project hoàn chỉnh trong
workspace sẳn sàng để thực hiện mọi cái bạn muốn với J2ME.
2. Tạo MIDlet
MIDlet là lớp chính của toàn bộ ứng dụng J2ME. Có thể so sánh nó như một lớp có
hàm main của J2SE, một Servlet của J2EE hay một Applet của ứng dụng applet. Để tạo
mới một MIDlet, bạn hãy thực hiện theo các bước sau đây:
- Trong khung Navigator, kích chuột phải trên J2ME project (theo ví dụ ở trên là
HelloWorld).
- Trong popup menu hiện ra, chọn New -> Other.
- Mở rộng mục J2ME, chọn J2ME Midlet. Kích Next.
- Nhập tên gói chứa MIDlet trong mục package, ví dụ: edu.eclipseme.helloworld
- Nhập tên lớp MIDlet trong mục Name, ví dụ: HelloWorldMIDlet.
- Nhấn nút Finish để kết thúc quá trình tạo MIDlet. Bạn đã có một MIDlet với đầy
đủ các phương thức chính (constructor, startApp, pauseApp, destroyApp) trong
J2ME project của mình.
Sau đây là ví dụ về chương trình HelloWorldMIDlet. Chương trình của chúng ta sẽ vẽ
một dòng chữ Hello World in đậm màu đỏ ở giữa màn hình điện thoại. Trước khi in
dòng chữ, chương trình hiển thị một màn hình intro trong 30 giây với một hình ảnh
dạng png làm logo. Bạn có thể chọn bất kỳ hình nào bạn muốn. Ở đây, chúng tôi chọn
logo của JavaVietnam.org.
a) HelloCanvas.java: Lớp vẽ dòng chữ Hello World
package edu.eclipseme.helloworld;
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Font;
import javax.microedition.lcdui.Graphics;
/**

* Canvas v chu i HelloWorld ẽ ỗ
*/
public class HelloCanvas extends Canvas{
/**
* B n hãy v nh ng gì b n mu n âyạ ẽ ữ ạ ố ở đ
*/
protected void paint(Graphics g) {
clearScreen(g);
paintHello(g);
}
//Xoá màn hình (bôi màu tr ng).ắ
private void clearScreen(Graphics g){
g.setColor(0xFFFFFF);
g.fillRect(0, 0, getWidth(), getHeight());
}
//V chu i Hello Worldẽ ỗ
private void paintHello(Graphics g){
//Chu i c n vỗ ầ ẽ
String hello = "Hello World";
//Màu c n v ( )ầ ẽ đỏ
g.setColor(0xFF0000);
//Font c n vầ ẽ
Font font = Font.getFont(Font.FACE_SYSTEM,
Font.STYLE_BOLD, Font.SIZE_MEDIUM);
g.setFont(font);
//V trí v (gi a màn hình)ị ẽ ữ
int x = (getWidth() - font.stringWidth(hello)) / 2;
int y = (getHeight() - font.getHeight()) / 2;
//V chu iẽ ỗ
g.drawString(hello, x, y, Graphics.TOP | Graphics.LEFT);

}
}
b) IntroCanvas.java: Lớp hiển thị màn hình intro.
package edu.eclipseme.helloworld;
import java.io.IOException;
import java.util.Timer;
import java.util.TimerTask;
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
/**
* Hi n th màn hình introể ị
*/
public class IntroCanvas extends Canvas{
//B n có th thay b ng logo b n thích.ạ ể ằ ạ
private static final String logoName =
"javavietnam_logo.png";
private Display display;
private Displayable nextScreen;
private int timeout;
private Timer timer = new Timer();
public IntroCanvas(Display display, Displayable nextScreen,
int timeout){
this.display = display;
this.nextScreen = nextScreen;
this.timeout = timeout;
}


/**
* B t u màn hình intro.ắ đầ
*/
public void startIntro(){
display.setCurrent(this);
}

/**
* K t thúc màn hình introế
*/
public void endIntro(){
display.setCurrent(nextScreen);
}

protected void paint(Graphics g) {
try {
Image logo = Image.createImage(logoName);
g.drawImage(logo, 0, 0, Graphics.TOP |
Graphics.LEFT);
}
catch (IOException e) {
g.drawString(“Logo Error”, 0, 0, Graphics.TOP |
Graphics.LEFT);
}
}
/**
* Thi t l p b m th i gian.ế ậ ộ đế ờ
*/
protected void showNotify() {
timer.schedule(new CountDown(), timeout);

}
/**
* K t thúc intro n u b t k phím nào c nh n.ế ế ấ ỳ đượ ấ
*/
protected void keyPressed(int keyCode) {
endIntro();
}
/**
* K t thúc intro n u h t th i gian.ế ế ế ờ
*/
private class CountDown extends TimerTask {
public void run() {
endIntro();
}
}
}
c) HelloWorldMIDlet.java: Lớp chính
package edu.eclipseme.helloworld;
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Display;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
/**
* Day la lop chinh cua ung dung thua ke tu lop MIDlet.
*/
public class HelloWorldMIDlet extends MIDlet {
private Display display;
private IntroCanvas introCanvas;
private HelloCanvas helloCanvas;
/**

* Phuong thuc thiet lap.
*/
public HelloWorldMIDlet() {
super();
}
/**
* Phuong thuc nay thuc nay se duoc goi boi KVM khi nguoi
* dung nhan phim Launch tren dien thoai di dong.
* @see javax.microedition.midlet.MIDlet#startApp()
*/
protected void startApp() throws MIDletStateChangeException
{
display = Display.getDisplay(this);

×