Pham_loi
Chức vụ: 16:00:38, 10-08-2015 |
Học J2ME, Bạn cần những gì?
☆ Học J2ME, bạn cần những gì?
Vấn đề này rất quan trọng nhưng không quá phức tạp, chỉ cần bạn nắm chắc thì việc học lập trình J2ME hay những ngôn ngữ khác không hề khó.
1: Điều đầu tiên và cũng là điều quan trọng nhất:
Bạn cần phải có tính kiên nhẫn, bình tĩnh xử lý mọi việc và không thể thiếu lòng đam mê. Trong lập trình, việc gặp lỗi hay sự cố xảy ra thường xuyên (còn hơn cơm bữa ), hãy bình tĩnh và nhìn lại đoạn code của bạn, đôi khi nó chỉ nhỏ như hạt bụi và bạn không ngờ tới.
2: Điều thứ hai, Liên quan đến kiến thức:
Để học được J2ME đòi hỏi bạn cần có kiến thức cơ bản về java. Các khái niệm về class, cấu trúc của class, hiểu về hướng đối tượng, các kiểu biến nguyên thủy, các hàm lặp, hàm điều kiện. Tất cả các kiến thức này là nền tảng giúp bạn học tốt và nhanh hơn
3: Điều thứ ba:
Đừng quên việc học tập bởi các kiến thức nâng cao áp dụng nhiều từ kiến thức trường lớp, đặc biệt là Toán và Lý cực kì cần thiết (khỏi nói cũng biết), lập trình đòi hỏi tư duy logic cao, áp dụng kiến thức đã học tốt.
4: Điều thứ tư:
Vốn tiếng anh cũng rất cần thiết vì đa các tài liệu và ví dụ chủ yếu là tiếng anh, các tài liệu tiếng anh cũng đi sâu hơn vào chuyên môn, để nhớ các tên hàm bạn cũng cần biết tiếng anh kha khá.
5: Điều thứ năm:
Nghỉ ngơi, sinh hoạt hợp lý, đừng vì mấy dòng code mà quên ăn quên ngủ và quên cả gia đình. Sức khỏe là điều quan trọng nhất, nhiều lập trình viên không quan tâm đến sức khỏe và kết quả là... bạn tự biết, hình dung xem một người không ăn uống theo giờ giấc, không vận động, suốt ngày "cắm mặt vào cái máy tính" (câu này nghe quen không các bạn :ha: ) thì sẽ như thế nào.
Bản thân mình trước kia cũng chẳng quan tâm đến mấy thứ này, kết quả là vùi đầu vào mấy quyển sách mà cũng chẳng có tí kiến thức nào. Bị cận (vì cái câu trên kia kìa), người thì gầy dơ xương (nói thật là đến bây giờ vẫn gầy, siêu gầy).
Không ai hoàn hảo cả. Chỉ cần có lòng đam mê và đi đúng hướng, bạn sẽ làm được tất cả :gy:
Chúc bạn thành công!
: 0 ♥
Pham_loi
Chức vụ: 16:01:43, 10-08-2015 |
Lời nói đầu & Tổng quát về ngôn ngữ lập trình
★ Lời Nói Đầu:
Thế giới công nghệ ngày càng phát triển. Ngôn ngữ lập trình mới ra đời và dần thay thế thứ cũ như androis chẳng hạn. Nhưng các bạn hãy nhớ java là ngôn ngữ lập trình "viết một lần, chạy mọi nơi" và nó nhẹ nhất dễ cài đặt nhất hãy so sánh với androis thử xem độ cồng kềnh nặng nề ra sao. Thêm vào đó các bạn học sinh thường thiếu điều kiện, nghèo khó thì làm sao tiếp cận mấy thứ cao siêu.
Và... các bạn ơi điều kì diệu đôi khi là những thứ vô cùng đơn giản. Đất nước ta đã trải qua chiến tranh đau thương và phát triến sau 30 năm như hôm nay cũng dựng lại mọi thứ từ đống đổ nát, trong điều kiện thiếu thốn đó thôi. Thật may mắn cho chúng ta, các bạn học sinh dù điều kiện thiếu thốn cũng có thể làm quen với ngôn ngữ lập trình java và tạo ứng dụng chỉ với mốt chiếc điện thoại nokia s40...chính mình cũng chỉ dùng điện thoại nokia 2700c để làm ứng dụng.
Người Việt ta sáng tạo thì chưa dám nói song học hỏi rất nhanh. Mình hy vọng rằng nhiều bạn học sinh nghèo sau này trở thành lập trình viên giỏi mà việc khới đầu từ ngôn ngữ java viết không cần máy tính.
★ Tổng Quát Về J2ME:
J2ME(Java 2 Micro Edition) là một nhánh của ngôn ngữ lập trình Java để phát triển các ứng dụng trên điện thoại di động hay các thiết bị cầm tay nhỏ gọn khác.
J2ME được phát triển từ kiến trúc Java Card, Embeded Java vf Personal Java của phiên bản Java 1.1. Đến sự ra đời của Java 2 thì Sun quyết định thay thế Personal Java và được gọi với tên mới là Java 2 Micro Edition, hay viết tắt là J2ME. Đúng với tên gọi, J2ME là nền tảng cho các thiết bị có tính chất nhỏ gọn...
: 0 ♥
Pham_loi
Chức vụ: 16:02:31, 10-08-2015 |
(Bài mở đầu) Cấu trúc cơ bản của một ứng dụng java
Một ứng dụng java gồm có:
Flie jar và file jad(một số thiết bị không yêu cầu file jad)
File jar là một file zip trong có chứa các file java đã được mã hóa thành dạng binary (class) và file thông tin mô tả ứng dụng - MANIFEST.MF
File thông tin về ứng dụng mặc định nằm trong thư mục META-INF và cần ít nhất những dòng thông tin sau:
Manifest-Version: 1.0
MIDlet-1: App,icon.png,Midlet
MIDlet-Name: Bài tập 1
MIDlet-Vendor: NDTpro
MIDlet-Version: 1.0
MicroEdition-Configuration: CLDC-1.0
MicroEdition-Profile: MIDP-2.0
Copy code
MIDlet-1: App,icon.png,Midlet
MIDlet-Name: Bài tập 1
MIDlet-Vendor: NDTpro
MIDlet-Version: 1.0
MicroEdition-Configuration: CLDC-1.0
MicroEdition-Profile: MIDP-2.0
Copy code
File jad một số thiết bị yêu cầu phải có, nó là file cài đặt ứng dụng nằm cùng thư mục chứa file jar của ứng dụng. Nó giống hệt file MF và có thêm 2 dòng sau:
Đó là size-dung lượng của file jar tính bằng byte... Các bạn tự tìm hiểu thêm về file thông tin và cài đặt ứng dụng nha.
Hãy chú ý dòng
MIDlet-1: App,icon.png,Midlet
thì quan trọng là tên Midlet nó là tên class chạy đầu tiên khi khởi động ứng dụng các bạn tạo ứng dụng chỉ cần viết đúng nó còn lại copy file MF của ứng dụng khác cũng không sao!
Để tạo hoặc sửa file.MF các bạn có thể sử dụng chức năng TextEditor của MobyExplore hoặc dùng MiniCommander hay bất cứ phần mềm nào có chức năng sửa văn bản.
: 0 ♥
Pham_loi
Chức vụ: 16:13:08, 10-08-2015 |
(Bài 1) HelloWorld bài học đầu tiên
Form là đồ họa cấp cao, nhưng việc lập trình trên form lại dễ hơn so với Canvas(đồ họa cấp thấp), do đó người mới học hãy làm quen với form trước.
Những tài liệu bên dưới lấy của bạn LeZink và bổ sung thêm.
Hôm nay mình sẽ dạy các bạn viết code và tạo một ứng dụng viết một dòng chữ lên Form và in lên màn hình.
Đầu tiên ta sẽ bắt đầu bằng một phần mềm quản lý file nào đó như s40 ta dùng BlueFTP còn s60 thì dùng Xlplore, tạo 2 thư mụcSrcvàLibtrong ổ E: hoặc bất cứ đâu chỉ cần ta nhớ đường dẫn của nó.
Rồi dùng ScriptEditor hoặc Multi Trans mở thư mụcSrclên và tạo một file(nhớ là file, ko phải thư mục), đối với ScriptEditor thì ta ấn menu > Mới...
Còn Multi Trans ta ấn phím 7 và tích vào Tập tin
Nhập tên file mới làHelloWorld.javalưu ý phải viết đúng tên file không sai chữ hoa, thường.
Sau đó ta mở luôn fileHelloWorld.javađó lên, ấn chọn vào dòng đầu.
Ta sẽ post code dưới vào (ấn trích dẫn để copy chính xác hơn):
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class HelloWorld extends MIDlet{
Form f = new Form("tên form");
public void startApp(){
f.append("HELLO WORLD!");
Display.getDisplay(this).setCurrent(f);
}
public void pauseApp(){}
public void destroyApp(boolean unconditional){ }
}
Copy code
import javax.microedition.lcdui.*;
public class HelloWorld extends MIDlet{
Form f = new Form("tên form");
public void startApp(){
f.append("HELLO WORLD!");
Display.getDisplay(this).setCurrent(f);
}
public void pauseApp(){}
public void destroyApp(boolean unconditional){ }
}
Copy code
Sau đó ta lưu lại, dưới là phần hướng dẫn cho từng dòng...
2 dòng có tiền tố import này dùng để khai báo thư viện, giống như uses crt trong pascal, sẽ có nhiều thư viện.
dòng này là phần mở đầu của 1 class, có thể có nhiều phần có tiền tố public, giống như procedure trong pascal (chương trình con). Sau dòng này, ta khai báo biến và các thứ khác...HelloWorld là tên class mà khi mình tạo project mới, phân biệt hoa thường, nếu khi code mà viết sai tên class thì build xong ứng dụng java sẽ bị lỗi[bỨng dụng sai: Class Not Found (ko tìm thấy class). [/b
dòng này dùng để tạo form, form giống như 1 màn hình, ví dụ như trên form1 có cái link, nhấn vào là hiện form2, form2 có nút Quay Về và Tiếp Tục, bấm Quay Về thì hiện form1, bấm Tiếp Tục thì hiện form3. Hay ho nhỉ. Trên form có thể thêm nhiều thứ như Văn bản, hình, danh sách, menu,... Cấu trúc để khai báo là:
Form tên= new Form("tiêu đề");
public void startApp()
{
Tất cả những gì trong này sẽ đc thực hiện khi mở ứng dụng
}
Copy code
{
Tất cả những gì trong này sẽ đc thực hiện khi mở ứng dụng
}
Copy code
Gọi nôm na là thân chương trình, lưu ý là có rất nhiều phần code đc gom trong 2 dấu ngoặc {}, phải tinh mắt để phân chia ra có bao nhiêu dấu mở { thì sẽ có bấy nhiêu dấu đóng }
dòng này nghĩa là viết chữ "HELLO WORLD" lên form, ở đây form tên là f mà ta đã khai báo ở trên kia.
dòng này nghĩa là cho form f xuất hiện, vì mỗi lần chỉ xuất hiện được 1 form, muốn hiện form2 thì Display.getDisplay(this).setCurrent(form2);
Trong pascal mở và kết thúc 1 phần bằng cặp begin...end. Còn ở đây là cặp ngoặc nhọn {}.
Nhớ xuống dòng sau mỗi dấu ngoặc nhọn và dấu chấm phẩy.
Các phần còn lại ta cứ để đó sẽ hướng dẫn sau...
Thế là ta đã xong phần viết code, các bạn không cần phải cố gắng hiểu hết cặn kẽ vấn đề ta chỉ cần hiểu từ từ.....
Sau khi viết code xong ta tiến hành xây dựng ứng dụng
Mở phần mềm Mobile Eclipse lên, và nhập đường dẫn thư mụcSrcvào dòng đầu
ví dụ:/E:/Src
dòng thứ 2, 3 ta giữ nguyên, nhập đường dẫn thư mụcLibvào dòng 4
ví dụ:/E:/Lib
Ta ấn Compile và đợi phần mềm xử lý, xem có báo lỗi k nếu k thì ta dùng phần mềm Preverify fix lỗi cho file class đã đc tạo trong thư mụcLib
Tiếp theo là đến bước tạo file thông tin ứng dụng, thực chất đây là một file .txt. Ta dùng ScriptEditor(hoặc Multi Trans) mở thư mụcLiblên và tạo thêm thư mụcMETA-INFrồi mở tiếp lên tạo thêm 1 file tênMANIFEST.MFsau đó copy code dưới vào
Manifest-Version: 1.0
MIDlet-1: vd,icon.png,HelloWorld
MIDlet-Name: tên ứng dụng
MIDlet-Vendor: tác giả
MIDlet-Version: 1.0
MicroEdition-Configuration: CLDC-1.0
MicroEdition-Profile: MIDP-2.0
Copy code
MIDlet-1: vd,icon.png,HelloWorld
MIDlet-Name: tên ứng dụng
MIDlet-Vendor: tác giả
MIDlet-Version: 1.0
MicroEdition-Configuration: CLDC-1.0
MicroEdition-Profile: MIDP-2.0
Copy code
Lưu lại, thế là ta đã đủ hết rồi
Sau đó có thể dùng bất cứ phần mềm nào có tính năng nén .zip để nén hết file trong thư mục Lib lại, đổi tên và hưởng thụ hậu quả
Chỉnh sửa lúc 2015-08-13 22:06 bởi Pham_loi
: 0 ♥
Pham_loi
Chức vụ: 16:17:44, 10-08-2015 |
Xuống dòng trong J2ME
Khi các bạn in một cái gì đó ra màn hình muốn nó xuống các dòng nhưng k tài nào xuống đc vd:
thì khi in ra vẫn là "abc" trên màn hình
Vậy muốn nó xuống dòng khác ta sẽ dùng kí tự "\n" để tách dòng, khi đó ta có code như sau:
in ra màn hình sẽ là:
a
b
c
: 0 ♥
Pham_loi
Chức vụ: 17:14:21, 10-08-2015 |
(Bài 2) StringItem - In văn bản lên Form
Bài này mình sẽ hướng dẫn thêm dòng chữ vào Form bằng StringItem có tên tuổi hẳn hoi nha.. StringItem là một dòng chữ, có tên. Mời bạn xem qua đoạn mã này:
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class HelloWorld extends MIDlet {
Form f=new Form("tiêu đề");
StringItem si = new StringItem("Tiêu đề", "alibaba mang quần sịp ra xé ra làm ba...");
Display d = Display.getDisplay(this);
public void startApp() {
f.append("dòng này viết ra văn bản k dùng StringItem");
f.append(si);
d.setCurrent(f);
}
public void pauseApp() {}
public void destroyApp(boolean uncon) {}
}
Copy code
import javax.microedition.lcdui.*;
public class HelloWorld extends MIDlet {
Form f=new Form("tiêu đề");
StringItem si = new StringItem("Tiêu đề", "alibaba mang quần sịp ra xé ra làm ba...");
Display d = Display.getDisplay(this);
public void startApp() {
f.append("dòng này viết ra văn bản k dùng StringItem");
f.append(si);
d.setCurrent(f);
}
public void pauseApp() {}
public void destroyApp(boolean uncon) {}
}
Copy code
StringItem si = new StringItem("Tiêu đề", "alibaba mang quần sịp ra xé ra làm ba...");
Copy code
Copy code
Cấu trúc khai báo StringItem giống như Form,
và tên của String Item trên là si. Để String Item hiện ra thì phải gắn nó lên Form:
f.append(si);
và có thể gắn lên nhiều Form khác nữa:
f2.append(si);
f3.append(si);
Dòng này khai báo biếndlà biến Display. Nếu có dòng này rồi thì phía dưới chỉ cầnd.setCurrent(f);thôi. Nếu ko có dòng này thì phía dưới phải ghi làDisplay.getDisplay(this).setCurrent(f);nếu bạn thấy quá thừa thì hãy nghĩ lại, các ứng dụng thường sử dụng rất nhiều lần dòngDisplay.getDisplay(this).setCurrent(f);vì thế việc khai báo biếndra là rất có ích. Những bạn ko hiểu có thể hiểu là biếndthay mặt choDisplay.getDisplay(this)để hiện thị...
Các thao tác với StringItem:
si.getText();lấy nội dung của nó
si.setText("nội dung");đặt nội dung cho nó
si.getLabel();lấy tiêu đề
si.setLabel("tiêu đề mới");đặt tiêu đề cho nó, phần này những bạn mới học thì chưa cần hiểu kỹ...
StringItem là thứ rất đơn giản và dễ dùng, bạn nên tập dùng vài lần...
: 0 ♥
Pham_loi
Chức vụ: 17:15:17, 10-08-2015 |
(Bài 3)TextField-Trường nhập văn bản
Bài này sẽ hướng dẫn sử dụng TextField, trường nhập văn bản. TextField sử dụng để làm nhiều thứ. Vd: khung đăng nhập với text field nhập nick và text field nhập pass.
Cấu trúc khai báo của TextField rắc rối hơn StringItem, như thế này:TextField tên=new TextField("tiêu đề","nội dung", số ký tự tối đa, kiểu);
Copy code
Copy code
Mời các bạn xem đoạn mã dưới đây:
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class TxtField extends MIDlet{
Form f = new Form("tieu de");
TextField tf = new TextField("nhap van
ban:", null, 500, 0);
Display d = Display.getDisplay(this);
public void startApp(){
f.append(tf);
d.setCurrent(f);
}
public void pauseApp(){
}
public void destroyApp(boolean uncon){
}
}
Copy code
import javax.microedition.lcdui.*;
public class TxtField extends MIDlet{
Form f = new Form("tieu de");
TextField tf = new TextField("nhap van
ban:", null, 500, 0);
Display d = Display.getDisplay(this);
public void startApp(){
f.append(tf);
d.setCurrent(f);
}
public void pauseApp(){
}
public void destroyApp(boolean uncon){
}
}
Copy code
Trước tiên, text field này tên làtf.
Chỗ mà đáng ra phải chứa nội dung lại ghi lànull.Nulllà từ khoá, hễ có chữnullnghĩa là Không Có Gì Cả, tức là text field này chưa có nội dung gì, kể cả khoảng trắng.
Tiếp, số ký tự tối đa là500, còn kiểu là0. Thực ra kiểu của TextField có tên hẳn hoi, số 0 là viết tắt thôi.
Dưới đây là 1 số mã tắt thông dụng:
0: nhập gì cũng đc.
1: nhập vào dạng email.
2: chỉ đc nhập số.
3: nhập sđt.
4: dạng url.
5: chỉ nhập số thập phân.
65536: dạng password, nhập xong thành dấu sao.
131072: nhập vào đc nhưng ko sửa đc.
Nếu muốn chỉ nhập đc số và ko sửa đc thì viết thế này:
TextField tf=new TextField("nhap ma so:",null,500,2|7);
Copy code
0: nhập gì cũng đc.
1: nhập vào dạng email.
2: chỉ đc nhập số.
3: nhập sđt.
4: dạng url.
5: chỉ nhập số thập phân.
65536: dạng password, nhập xong thành dấu sao.
131072: nhập vào đc nhưng ko sửa đc.
Nếu muốn chỉ nhập đc số và ko sửa đc thì viết thế này:
TextField tf=new TextField("nhap ma so:",null,500,2|7);
Copy code
Các lệnh với TextField:
tf.getString();lấy nội dung của nó
tf.setString ("nội dung");:đặt nội dung mới cho nó.
Copy code
tf.getString();lấy nội dung của nó
tf.setString ("nội dung");:đặt nội dung mới cho nó.
Copy code
Có gì k hiểu cứ cmt tại tóp
: 0 ♥
Pham_loi
Chức vụ: 17:17:02, 10-08-2015 |
(bài 4) Ticker - Dòng chữ chạy trên màn hình
Thật ra t chưa học cái này đâu nhưng t copy về và post lên cho ae nào cần. Ai pro j2me thì giúp đỡ ae mói học về phần này nha.
Bài này sẽ hdsd Ticker. Ticker là dòng chữ chạy ngang, khi tên tập tin quá dài vượt màn hình thì nó sẽ chạy từ đầu tên đến cuối tên, đó là một ví dụ. Để khai báo ticker, ta viết:Đơn giản phải ko? Mời xem qua đoạn code:
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class Tiker extends MIDlet{
Form f = new Form("tieu de");
Ticker tk = new Ticker("chao cac tinh yeu");
Display d = Display.getDisplay(this);
public void startApp(){
f.append("chao tinh yeu");
f.setTicker(tk);
d.setCurrent(f);
}
public void pauseApp(){
}
public void destroyApp(boolean uncon){
}
}
Copy code
import javax.microedition.lcdui.*;
public class Tiker extends MIDlet{
Form f = new Form("tieu de");
Ticker tk = new Ticker("chao cac tinh yeu");
Display d = Display.getDisplay(this);
public void startApp(){
f.append("chao tinh yeu");
f.setTicker(tk);
d.setCurrent(f);
}
public void pauseApp(){
}
public void destroyApp(boolean uncon){
}
}
Copy code
File_ticker
Giải thích ..Cấu trúc giống như StringItem vậy. Ở đây ticker tên là tk, có nội dung là "chao cac tinh yeu", dòng nội dung này sẽ chạy từ phải qua trái nhá ..Mình viết thêm dòng này, tức là thêm dòng chữ "chao tinh yeu" vào Form để các bạn so sánh ticker với dòng chữ bình thường .. f.setTicker(tk); Thường thì những thứ gắn lên form đều bằng lệnhf.append(thứ cần gắn);Nhưng Ticker thì khác, nó dùng lệnhf.setTicker(tên ticker);Còn lý do vì sao thì mình ếu biết. .. Các lệnh dùng với Ticker:tk.setString("nội dung");đặt nội dung mới cho nótk.getString();lấy nội dung của nó Ticker là thứ đơn giản và ít sử dụng. Bạn chỉ cần tập 1 - 2 lần thôi kẻo già.
: 0 ♥
Pham_loi
Chức vụ: 17:17:56, 10-08-2015 |
(Bài 5) TextBox - Hộp nhập văn bản
• TextBox:
Bây giờ chúng ta sẽ tìm hiểu TextBox - hộp nhập văn bản. TextBox là một hộp lớn để nhập văn bản, thường dùng khi viết nhật ký, viết comment, viết tin nhắn... TextBox khá giống TextField. Cấu trúc khai báo là:
Ví dụ:
Mời bạn xem đoạn mã:
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class c extends MIDlet {
TextBox tb=new TextBox("tieu de textbox","noi dung",500,0);
Display d = Display.getDisplay(this);
public void startApp()
{
d.setCurrent(tb);
}
public void pauseApp() {}
public void destroyApp(boolean uncon) {}
}
Copy code
import javax.microedition.lcdui.*;
public class c extends MIDlet {
TextBox tb=new TextBox("tieu de textbox","noi dung",500,0);
Display d = Display.getDisplay(this);
public void startApp()
{
d.setCurrent(tb);
}
public void pauseApp() {}
public void destroyApp(boolean uncon) {}
}
Copy code
Giải thích
Dòng này chắc các bạn đã hiểu sau khi học bài TextField. TextBox này tên tb, kiểu là cho phép nhập ký tự bất kì (kiểu giống TextField)
d.setCurrent(tb);
Đây là điểm khác nhau với text field, text box không cần dùng Form mới có thể hiện ra. Đối với text field thì:
f.append(tf);
d.setCurrent(f);
Còn text box thì:
d.setCurrent(tb);
Từ đây suy ra TextBox có thể hiển thị độc lập, ngang hàng với Form. Còn TextField chỉ là con cháu cấp dưới thôi.
Các lệnh dùng với TextBox:
tb.getString();lấy nội dung
tb.setString("nội dung");đặt nội dung mới TextBox
Dùng ko nhiều cũng ko ít, nên thực hành 3, 4 lần.
: 0 ♥
Pham_loi
Chức vụ: 17:18:38, 10-08-2015 |
(Bài 6) Command-Lệnh
Bài này mình sẽ hướng dẫn sử dụng Command - lệnh.
Command nghĩa là lệnh. Cứ hiểu là nút bấm cho khoẻ. Ví dụ nút thoát game, nút cancel, nút ok...
Cấu trúc khai báo:
Xem code dưới nha:
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class Midlet extends MIDlet implements CommandListener{
Command thoat = new Command("Thoát ra",7,1);
Form f = new Form("su dung cm");
Display d = Display.getDisplay(this);
public void startApp(){
f.addCommand(thoat);
f.setCommandListener(this);
d.setCurrent(f);
}
public void pauseApp(){}
public void destroyApp(boolean uncon){
notifyDestroyed();
}
public void commandAction(Command c,Displayable d){
if (c == thoat)destroyApp(true);
}
}
Copy code
import javax.microedition.lcdui.*;
public class Midlet extends MIDlet implements CommandListener{
Command thoat = new Command("Thoát ra",7,1);
Form f = new Form("su dung cm");
Display d = Display.getDisplay(this);
public void startApp(){
f.addCommand(thoat);
f.setCommandListener(this);
d.setCurrent(f);
}
public void pauseApp(){}
public void destroyApp(boolean uncon){
notifyDestroyed();
}
public void commandAction(Command c,Displayable d){
if (c == thoat)destroyApp(true);
}
}
Copy code
Như các bài trước thì bình thường không có implements CommandListener
Nhưng các bạn nên nhớ,nhẽ hễ dùng command thì phải có nhé.
Đằng sau chữ implements là kiểu thực thi của class mới và ở đây là nghe theo sự điều khiển của command
Theo cấu trúc đã nói ở bên trên thì Command này tên là thoat, còn cái nút tên là Thoát ra(cái nút này nó hiển thị ở một góc trên màn hình,làm rồi các bạn sẽ thấy).
Cũng theo cấu trúc, kiểu ở đây là 7, là số viết tắt của Command.EXIT
Có nhiều kiểu lắm các bạn ạ,nhưng mới học nên quan tâm đến mấy kiểu dưới đây thôi:
1.ứng với Command.SCREEN
2.ứng với Command.BACK
3.ứng với Command.CANCLE
4.ứng với Command.OK
5.ứng với Command.HELP
6.ứng với Command.STOP
7.ứng với Command.EXIT
8.ứng với Command.ITEM
Bạn muốn nút lệnh có chức năng gì thì chọn kiểu cho phù hợp nhé.
Copy code
1.ứng với Command.SCREEN
2.ứng với Command.BACK
3.ứng với Command.CANCLE
4.ứng với Command.OK
5.ứng với Command.HELP
6.ứng với Command.STOP
7.ứng với Command.EXIT
8.ứng với Command.ITEM
Bạn muốn nút lệnh có chức năng gì thì chọn kiểu cho phù hợp nhé.
Copy code
Bây giờ ta tìm hiểu số 1
cuối cùng, nằm ở chỗ vị trí
Thế này, nếu bạn có 1 command thoát, 1 command trở về. Cả 2 lệnh đều bấm phím mềm phải (RSK) để dùng thoát và trở về. 2 lệnh này sẽ không thể đè lênh nhau được mà nó sẽ gom lại thành dạng menu tùy chọn, số 1 là vị trí của lệnh trong menu đó.Làm thử rồi các bạn sẽ biết thôi.
Dùng để đăng lệnh Command lên Form
Cái lệnh này mình không biết để làm gì nhưng thiếu nó Command sẽ vô tác dụng.
Nên các bạn hãy nhớ Form nào dùng Command thì phải setCommandListener(this);
Đây là chương trình con. Trong đây ta cài đặt chức năng này cho Command
Nếu có nhiều Command thì thế này:
Các lệnh dùng với Command:
f.addCommand (têncm); :thêm command vào form
f.removeCommand(têncm); :xoá command khỏi form
Copy code
f.addCommand (têncm); :thêm command vào form
f.removeCommand(têncm); :xoá command khỏi form
Copy code
À quên cái lệnh:
Lệnh này có chức năng thực hiện thoát ứng dụng, có mặt trong mọi ứng dụng, luyện tập cỡ ngàn lần là đủ.
: 0 ♥