Public Item get(int itemNum)

Một phần của tài liệu Bài giảng điện tử môn tin học: Căn bản về J2ME pps (Trang 36 - 61)

 Layout

 public void

setItemStateListener(ItemStateListe

 MIDlet  Form  Command › CommandListener › ItemCommadListener  Item

 Lớp Command biểu diễn mặc ngữ nghĩa của một hành động

 Hành động được thực thi trong đối tượng CommandListener

 CommandListener được kết hợp với một Displayable hoặc Item

 Một khi Command được gọi –

CommandListener được gọi, và hành động đucợ thực thi.

 Command label

› public String getLabel()

 Command type

› public int getCommandType()

 Command priority

 Đối tượng này là bộ lắng nghe các Command được đưc vào một

Displayable

 public void

commandAction(Command c, Displayable d)

 Khi một Command (được đưa vào một Item) được gọi, ứng dụng được thông báo có commandAction() được gọi

trong ItemCommandListener  public void

 MIDlet  Form  Command › CommandListener › ItemCommandListener  Item

 Lớp cha của các thành phần có thể được thêm vào Form.

 Tất cả các đối tượng Item có một trường label

 Layout, size, và appearance  Thêm vào các Command

 public void

setDefaultCommand(Command cmd)

 public void

setItemCommandListener(ItemCommandL

istener listener)

 public void notifyStateChanged()  public int getPreferredWidth()

Bước 1: Download sun’s J2ME Wireless Toolkit từ: Wireless Toolkit từ: (adsbygoogle = window.adsbygoogle || []).push({});

http://java.sun.com/products/j2mewtool kit/download-2_1.html

Bước 2: Kiểm tra J2SE SDK đã được cài đặt được cài đặt

Shortcut trên menu Start:

Thư mục chứa

 Chọn “File\New Project”

 Nhập tên project và lớp MIDlet

 Một thư mục mới chứa project sẽ tự động được tạo

J2ME/apps/{proj} source, resource, and binary files

J2ME/apps/{proj}/bin JAR, JAD, unpacked manifest files.

J2ME/apps/{proj}/lib external class libraries, (JAR or ZIP) for a specific project

J2ME/apps/{proj}/res resource files J2ME/apps/{proj}/src source files

 Chọn platform  Viết code  Save  Build (Compile + Preverify)  Run

Eclipse

› Thiết kế theo mô hình platform

› Kiến trúc mơ cho phép gắn các plugin để

sử dụng các công cụ cần thiết

EclipseMe

› Plugin dành riêng cho phát triển ứng

dụng J2ME

› Thừa hương đầy đủ các tính năng của

Bước 1: Download tại địa chi

› Eclipse: http://www.eclipse.org

› EclipseME:

http://www.sourceforge.net/projects/eclipseme  Bước 2: Kiểm tra yêu cầu

› Để chạy được EclipseME, cần phải có J2ME Wireless Toolkit (WTK) 1.0, JDK 1.4 và Eclipse 3.0M9 trơ lên.

Bước 3: Cài đặt EclipseMe

› Để cài đặt EclipseMe, chỉ cần giải nén file zip đến thư mục plugins của Eclipse

Bước 4: Khởi động Eclipse

› Menu Window -> Preferences. Mơ rộng mục J2ME, chọn mục Platform

Components. (adsbygoogle = window.adsbygoogle || []).push({});

› 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 đã cài đặt.

› Nhất Finish rồi nhấn OK. Quá trình cài đặt và cấu hình đã hoàn tất.

Menu File -> New -> Project

Mở rộng mục J2ME, chọn J2ME MIDlet

Suite. Nhấn Next.

Gõ tên project (ví dụ HelloWorld) và chọn thư mục chứa project (ví dụ

C:\projects\J2ME). Nhấn Next.

Chọn nền WTK. Nhấn Next.

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.

Nhấn Finish để kết thúc quá trình tạo J2ME project.

Trong khung Navigator, kích chuột phải trên J2ME project (theo ví dụ ở trên là HelloWorld).

Chọn New -> Other.

Mở rộng mục J2ME, chọn J2ME Midlet. Nhấn 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 Finish để kết thúc quá trình tạo MIDlet

Chương trình 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

package eclipseme.HelloWorld;

import javax.microedition.lcdui.Canvas; import javax.microedition.lcdui.Font; import

javax.microedition.lcdui.Graphics; public class HelloCanvas extends Canvas {

protected void paint(Graphics g) { clearScreen(g); paintHello(g); } private void clearScreen(Graphics g) { g.setColor(0xFFFFFF); g.fillRect(0, 0, getWidth(), getHeight()); }

private void paintHello(Graphics g)

{

String hello = "Hello World"; g.setColor(0xFF0000); Font font = Font.getFont(Font.FACE_SYSTE M, Font.STYLE_BOLD, Font.SIZE_MEDIUM); g.setFont(font); int x = (getWidth() - font.stringWidth(hello)) / 2; int y = (getHeight() - font.getHeight()) / 2; g.drawString(hello, x, y, Graphics.TOP | Graphics.LEFT); } }

package 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; public class IntroCanvas extends Canvas{ private static final String logoName =

"/Images/image.png"; private Display display; (adsbygoogle = window.adsbygoogle || []).push({});

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; }

public void startIntro(){

display.setCurrent(this); }

public void endIntro(){

display.setCurrent(nextScr een);

protected void paint(Graphics g) { try { Image logo = Image.createImage(logoNa me); g.drawImage(logo, 0, 0, Graphics.TOP | Graphics.LEFT); } catch (IOException e) { g.drawString("Logo Error", 0, 0, Graphics.TOP | Graphics.LEFT); } } protected void showNotify() { timer.schedule(new CountDown(), timeout); } protected void keyPressed(int keyCode) { endIntro();} private class CountDown

extends TimerTask { public void run()

{endIntro();} }

package eclipseme.HelloWorld; import javax.microedition.lcdui.Display; import javax.microedition.midlet.MIDlet; import javax.microedition.midlet.MIDletS tateChangeException;

public class HelloWorldMIDlet extends MIDlet {

private Display display;

private IntroCanvas introCanvas; private HelloCanvas helloCanvas; public HelloWorldMIDlet() {

super(); }

protected void startApp() throws MIDletStateChangeException { display = Display.getDisplay(this); helloCanvas = new HelloCanvas(); introCanvas = new IntroCanvas (display, helloCanvas, 3000); introCanvas.startIntro(); }

protected void pauseApp() { } protected void destroyApp(boolean arg0) throws MIDletStateChangeException {} }

Một phần của tài liệu Bài giảng điện tử môn tin học: Căn bản về J2ME pps (Trang 36 - 61)