85
Tr Giúp - Tìm Ki m ế - Thành Viên - L ch Phiên b n đ y đ : H c Java qua các ví d c th [ C a S Tin H c ] > L p trình > Công ngh Java/J2ME Trang: 1, 2 Ph ngĐi p2410 ươ Dec 31 2007, 12:30 AM Bài 1 - Hello world Bài 2 – In ra chu i nh p vào Bài đ u tiên c a b n, b n đã h c cách đ Java in cái gì đó ra màn hình, trong bài này, b n s h c cách nh p vào cái gì đó và Java in cái đó ra màn hình. Gõ cái này đi b n (l u ý, b n ph i gõ, không ư đ c copy và paste) ượ CODE import java.io.*; public class Hello { public static void main(String[] args) throws Exception { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Your name is: "); String str; str = in.readLine(); System.out.println("Welcome " + str + " to Java"); } } Xin h i, tôi đã b t đ u v i m t vài ví d , mà tôi ch ng hi u cái gì c . Xin tr l i, b n s h c Java qua các ví d , r t nhi u ví d , lí ảờ thuy t thì b n ch h c t t thôi. ế ừừ *Lí thuy t: c u trúc m t ch ng trình Java ế ươ

Hoc java qua vi du

  • Upload
    loi-ho

  • View
    881

  • Download
    0

Embed Size (px)

Citation preview

Tr Giúpợ - Tìm Ki mế - Thành Viên - L chị Phiên b n đ y đ : ả ầ ủ H c Java qua các ví d c thọ ụ ụ ể[ C a S Tin H c ]ử ổ ọ > L p trìnhậ > Công ngh Java/J2MEệTrang: 1, 2 Ph ngĐi p2410ươ ệDec 31 2007, 12:30 AMBài 1 - Hello worldBài 2 – In ra chu i nh p vàoỗ ậBài đ u tiên c a b n, b n đã h c cách đ Java in cái gì đó ra mànầ ủ ạ ạ ọ ể hình, trong bài này, b n s h c cách nh p vào cái gì đó và Java inạ ẽ ọ ậ cái đó ra màn hình. Gõ cái này đi b n (l u ý, b n ph i gõ, khôngạ ư ạ ả đ c copy và paste)ượ

CODEimport java.io.*;public class Hello { public static void main(String[] args) throws Exception { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Your name is: "); String str; str = in.readLine(); System.out.println("Welcome " + str + " to Java"); }}

Xin h i, tôi đã b t đ u v i m t vài ví d , mà tôi ch ng hi u cáiỏ ắ ầ ớ ộ ụ ẳ ể gì c .ảXin tr l i, b n s h c Java qua các ví d , r t nhi u ví d , líả ờ ạ ẽ ọ ụ ấ ề ụ thuy t thì b n ch h c t t thôi.ế ạ ỉ ọ ừ ừ*Lí thuy t: c u trúc m t ch ng trình Javaế ấ ộ ươ

CODEpublic class Core { public static void main(String[] args) { System.out.println("Hello,Everybody in the World!"); }}

public class Core b n b t đ u m t l p Javaạ ắ ầ ộ ớpublic static void main(String[] args) đây là m t ph ng th cộ ươ ứ main trong Java, đ cho ch ng trình ch y đ c. T m th i b nể ươ ạ ượ ạ ờ ạ ph i gõ y nh th nàyả ư ếSystem.out.println("Hello,Everybody in the World!") đây là m tộ câu l nh trong Java, đ n gi n nó ch in ra chu i n m trong 2 d uệ ơ ả ỉ ỗ ằ ấ “” ra màn hình.M i l p và ph ng th c trong Java m ra b ng { và đóng l iọ ớ ươ ứ ở ằ ạ b ng }ằM i câu l nh trong java k t thúc b ng ; ọ ệ ế ằPh ngĐi p2410ươ ệDec 31 2007, 12:32 AMBài 3 – Bi n trong Javaế

CODEimport java.io.*;public class Hello { public static void main(String[] args) throws Exception { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Nhap a: "); int a = Integer.parseInt(in.readLine()); System.out.print("Nhap b: "); int b = Integer.parseInt(in.readLine());

int ketqua; ketqua = a+b; System.out.println("Ket qua bai toan a+b la: “ + ketqua); }}

Nh p th 2 s a và b vào đi b n, k t qu bài toán a+b s đ c inậ ử ố ạ ế ả ẽ ượ ra.*Lí thuy t:ế

CODEimport java.io.*;public class Hello { public static void main(String[] args) throws Exception { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Your name is: "); String str; str = in.readLine(); System.out.println("Welcome " + str + " to Java"); }}

T m th i, trong ch ng trình này, b n ch nên quan tâm đ nạ ờ ươ ạ ỉ ế dòngString str khai báo bi n str ki u chu i, vàế ể ỗ

CODESystem.out.println("Welcome " + str + " to Java")

Đây cũng là dòng System.out.println nh ch ng trình đ u, cóư ươ ầ khác là + str + t c là đ a m t bi n vào chu i in ra. Ch đ n đóứ ư ộ ế ỗ ỉ ế

thôi nhé, sau đó, hãy quan tâm đ n bài hôm nayế

CODESystem.out.print("Nhap a: ");int a = Integer.parseInt(in.readLine());System.out.print("Nhap b: ");int b = Integer.parseInt(in.readLine());int ketqua;ketqua = a+b;System.out.println("Ket qua bai toan a+b la: “ + ketqua);

Gi i thíchảimport b n nh p class hay th vi n chu n, t m th i đ ng quanạ ậ ư ệ ẩ ạ ờ ừ tâm nó là gì, ch c n nh là có nó đ ch ng trình ch yỉ ầ ớ ể ươ ạSystem.out.print in ra m t chu i, nh ng không xu ng dòngộ ỗ ư ốSystem.out.println in ra m t chu i, nh ng xu ng dòngộ ỗ ư ốint ketqua t c là khai báo bi n ketqua ki u intứ ế ểketqua = a+b t c là gán k t qu m t bi u th c tính toán ( đây làứ ế ả ộ ể ứ ở bi n a + bi n b ) cho bi n ketquaế ế ếSystem.out.println("Ket qua bai toan a+b la: “ + ketqua) thì đ nơ gi n r i, in cái dòng đó ra, ch khác là nó đ a bi n ketqua c aả ồ ỉ ư ế ủ b n vào chu i đó. ạ ỗPh ngĐi p2410ươ ệDec 31 2007, 12:35 AMBài 4 – Chia h t, chia l y dế ấ ư*Lí thuy t: m t s ki u bi n trong Javaế ộ ố ể ếB n đã bi t 2 ki u String (chu i) và int (nguyên) bây gi b nạ ế ể ỗ ờ ạ bi t thêm ki u float (th c)ế ể ựS nguyên và s th c b n bi t s khác nhau r i ch . Bây gi taố ố ự ạ ế ự ồ ứ ờ b t đ u bài toán ví dắ ầ ụ

CODEimport java.io.*;public class Hello {

public static void main(String[] args) throws Exception { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Nhap a: "); float a = Float.parseFloat(in.readLine()); System.out.print("Nhap b: "); float b = Float.parseFloat(in.readLine()); float ketqua = a/b; System.out.println("Ket qua bai toan a+b la: " + ketqua); }}

B n th bài toán xem, nh đ ng nh p s b=0 nhé, chuy n y sạ ử ớ ừ ậ ố ệ ấ ẽ x lí sau.ửVí d nh p a=5, b=2, k t qu in ra s là 2.5, thú v ph i không ?ụ ậ ế ả ẽ ị ảBây gi cũng bài toán y, b n thay đ i nh sauờ ấ ạ ổ ư

CODEimport java.io.*;public class Hello { public static void main(String[] args) throws Exception { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Nhap a: "); int a = Integer.parseInt(in.readLine()); System.out.print("Nhap b: "); int b = Integer.parseInt(in.readLine()); float ketqua = a/b; System.out.println("Ket qua bai toan a+b la: " + ketqua); }}

Cũng nh p a=5, b=2, l n này k t qu in ra là … 2ậ ầ ế ảPhép chia s là phép chia h t n u c 2 toán h ng đ u ki uẽ ế ế ả ạ ề ể nguyên, g i là chia l y nguyên (/) hay divọ ấBây gi cũng ch ng trình y mà ta thay đ i l i chút xíu xem saoờ ươ ấ ổ ạ

CODEimport java.io.*;public class Hello { public static void main(String[] args) throws Exception { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Nhap a: "); int a = Integer.parseInt(in.readLine()); System.out.print("Nhap b: "); int b = Integer.parseInt(in.readLine()); float ketqua = a%b; System.out.println("Ket qua bai toan a+b la: " + ketqua); }}

Cũng nh p a=5, b=2, l n này k t qu in ra là … 1ậ ầ ế ảĐây là k t qu phép chia l y d 5 chia cho 2, g i là chia l y dế ả ấ ư ọ ấ ư (%) hay mod*Th n u tôi mu n 2 s nguyên chia nhau mà ra ki u th c chế ế ố ố ể ự ứ không ph i phép chia l y nguyên thì sao ? Trong tr ng h p đó,ả ấ ườ ợ b n dùng “ép ki u”ạ ểint a=5,b=2;float ket qua;ketqua=(float)a/b; Ph ngĐi p2410ươ ệDec 31 2007, 12:40 AMBài 5 – L p trình OOPậ

classĐây là m t class, class này có hai property (thu c tính) là name vàộ ộ

age

CODEpublic class Person{ String name; int age;}

Đây là m t class, class này ngoài property còn có constructorộ (kh i t o) c a class đóở ạ ủ

CODEpublic class Person{ String name; int age; public Person(String name) { this.name = name; }}

Trong cái constructor này hãy l u ý m t đi u, đó là bi n this.ư ộ ề ế Bi n this có nghĩa là b n thân cái class đó ( đây là class Person).ế ả ởTrong class Person có m t property là age, câu this.age = age cóộ nghĩa là cái thu c tính age c a class Person s nh n giá tr cáiộ ủ ẽ ậ ị ở đ i s age do constructor Person(int age) đ a vào.ố ố ưL u ý là m i class đ u có s n ít nh t m t constructor không cóư ọ ề ẵ ấ ộ đ i s .ố ốĐây là m t class, class này ngoài property, constructor còn có m tộ ộ

behavior (hành vi)

CODEpublic class Person{ String name; int age; public Person(int age) { this.age = age; } public void Nhap() { nameonsole.readLine("Nhap ho ten:"); }}

Khi ta vi t câu l nh sauế ệPerson personOne = new Person(12);Thì ta đã t o ra m t instance (th hi n) là personOne c a classạ ộ ể ệ ủ Person Ph ngĐi p2410ươ ệDec 31 2007, 12:43 AMBài 5 – L p trình OOP (ti p)ậ ếKhai báo m t classộpublic abstract class MyClass {}T th 1 là khai báo quy n truy xu t và k th a,có 3 lo iừ ứ ề ấ ế ừ ạ-public:đ c phép truy xu t t b t c n i nào và b t c l p nàoượ ấ ừ ấ ứ ơ ấ ứ ớ cũng đ c quy n k th aượ ề ế ừ-protected:ch có ph ng th c cùng gói đ c phép truy xu t vàỉ ươ ứ ượ ấ k th aế ừ-private:ch có ph ng th c cùng gói đ c phép truy xu t nh ngỉ ươ ứ ượ ấ ư không l p nào đ c phép k th aớ ượ ế ừ

-n u không khai báo,m c đ nh là protectedế ặ ịT th 2 là khai báo m t l p tr u t ng hay là không tr u t ngừ ứ ộ ớ ừ ượ ừ ượNhiem vu: tao 1 lop Person, tao tiep 2 lop Students va Teachers ke thua lop Person, tao lop Execute chua ham chinh de chay chuong trinh.--lop Person-

CODEimport corejava.*;abstract class Person{ //cai nay goi la cac property hay state-thuoc tinh cua doi tuong String hoten; int age; String diachi; int luong; //cac constructor public Person(int age) { this.age = age; } //cac method hay behavior-hanh vi cua doi tuong public void Nhap() { hoten = Console.readLine("Nhap ho ten:"); diachi = Console.readLine("Nhap dia chi:"); } //vi la 1 class thuoc loai abstract nen Person duoc phep khai bao cac method khong co noi dung, noi dung cua class In se duoc cac lop ke thua no them vao noi dung cua rieng no public abstract void In(); public abstract int Tinhluong();}

--lop Students-

CODEimport corejava.*;class Students extends Person{ int MaSV,Malop; public void Nhap() { super.Nhap(); MaSV = Console.readInt("Nhap ma SV:"); Malop = Console.readInt("Nhap ma lop:"); } public void In() { System.out.println(hoten); System.out.println(diachi); System.out.println(MaSV); System.out.println(Malop); } public int Tinhluong() { return 150000; }}

tu khoa super se goi ham Nhap() tu lop Person la cha cua lop Students--lop Teachers-

CODE

import corejava.*;class Teachers extends Person{ int Makhoa; public void Nhap() { super.Nhap(); Makhoa = Console.readInt("Nhap ma khoa::"); } public void In() { System.out.println(hoten); System.out.println(diachi); System.out.println(Makhoa); } public int Tinhluong() { return 500000; }}

--lop Execute-

import corejava.*;class Execute{ public static void main(String args[]) { Students st = new Students(); st.Nhap(); st.In(); st.luong=st.Tinhluong(); Teachers tc = new Teachers(); tc.Nhap(); tc.In();

tc.luong=tc.Tinhluong(); }}Ph ngĐi p2410ươ ệDec 31 2007, 12:44 AMKhai báo m t thu c tính:ộ ộKhai báo 1 thu c tínhộpublic static void temp;T th 1 là khai báo quy n truy xu t,có 3 lo iừ ứ ề ấ ạ-public:đ c phép truy xu t t b t c n i nàoượ ấ ừ ấ ứ ơ-protected:ch có l p con m i đ c phép truy xu tỉ ớ ớ ượ ấ-private:ch có l p đó xài(thu c tính riêng c a nó)ỉ ớ ộ ủ-n u không khai báo,m c đ nh là protectedế ặ ịb.T th 2 là khai báo cách truy xu t(static)ừ ứ ấstatic(tĩnh)-n u không khai báo,m c đ nh là không tĩnhế ặ ịT t c các đ i t ng th hi n t l p cha đ u đ c phép thayấ ả ố ượ ể ệ ừ ớ ề ượ đ i giá tr c a các thu c tính không tĩnh,còn giá tr c a thu c tínhổ ị ủ ộ ị ủ ộ tĩnh thì không đ c phép thay đ iượ ổ

CODEpublic class Car{ public string branch; public int cost; public static int tire=4;}

Nh ví d trên,t t c các l p con c a l p Car (như ụ ấ ả ớ ủ ớ ư ToyotaCar,Peugeot,Mazda…) đ u đ c phép thay đ i các thu cề ượ ổ ộ tính branch hay cost đ phù h p cho riêng mình,nh ng thu c tínhể ợ ư ộ tire (s bánh xe) không đ c phép thay đ i vì là thu c tính tĩnhố ượ ổ ộNói cách khác, ch có m t và ch m t thu c tính có tên là tireỉ ộ ỉ ộ ộ

trong class Car và t t c các class con c a nó, vì v y g i là tĩnhấ ả ủ ậ ọ

Khai báo m t hành viộM t ph ng th c đ c khai báo nh sauộ ươ ứ ượ ưpublic static double ketqua()Có 3 ch đ nh truy xu t là public, protected và privateỉ ị ấ-public:đ c phép truy xu t t b t c n i nàoượ ấ ừ ấ ứ ơ-protected:ch có l p k th a l p ch a nó đ c truy xu tỉ ớ ế ừ ớ ứ ượ ấ-private:ch l p ch a nó đ c truy xu t(dùng n i b )ỉ ớ ứ ượ ấ ộ ộ-n u không khai báo,m c đ nh là protectedế ặ ịCó 6 ch đ nh thu c tính là static, abstract, final, native,ỉ ị ộ synchronized (đ ng b ) và volatile (linh ho t)ồ ộ ạstatic(tĩnh)-n u không khai báo,m c đ nh là không tĩnhế ặ ị

CODEclass TestObject{ static void StaticMethod() {…} void NonStaticMethod() {…}}

N u là m t ph ng th c không tĩnh, đ u tiên b n ph i kh i t oế ộ ươ ứ ầ ạ ả ở ạ m t đ i t ng,sau đó m i đ c phép g i ph ng th cộ ố ượ ớ ượ ọ ươ ứTestObject test=new TestObject();test.NonStaticMethod();N u là m t ph ng th c tĩnh,b n đ c phép g i tr c ti p t l pế ộ ươ ứ ạ ượ ọ ự ế ừ ớTestObject.StaticMethod();abstract(tr u t ng)ừ ượM t ph ng th c tr u t ng không có n i dung.N i dung c aộ ươ ứ ừ ượ ộ ộ ủ nó s đ c các l p con tùy bi n và phát tri n theo h ng c aẽ ượ ớ ế ể ướ ủ riêng nó.- final: không th đ c extends hay override (ghi đè)ể ượ

- native: thân ph ng th c vi t b ng C hay C++ươ ứ ế ằ- synchronized: ch cho phép 1 thread truy c p vào kh i mã ỉ ậ ố ở cùng m t th i đi mộ ờ ể- volatile: s d ng v i bi n đ thông báo r ng giá tr c a bi n cóử ụ ớ ế ể ằ ị ủ ế th đ c thay đ i vài l n vì v y không ghi vào thanh ghiể ượ ổ ầ ậ.T th 3 là giá tr tr v .N u không có giá tr tr v thì là void ừ ứ ị ả ề ế ị ả ềPh ngĐi p2410ươ ệDec 31 2007, 12:46 AMinterface-templateBây gi ta có 1 khái ni m m i, là giao di n. Giao di n ra đ iờ ệ ớ ệ ệ ờ chính là đ gi i quy t đa k th a. M i l p trong Java ch có 1ể ả ế ế ừ ỗ ớ ỉ l p cha, nh ng có th implements nhi u giao di n.ớ ư ể ề ệGiao di n đ c khai báo gi ng nh 1 l p, cũng có state vàệ ượ ố ư ớ behavior. Nh ng state c a giao di n là final còn behavior làư ủ ệ abstractGi s , ta s khai báo m t giao di nả ử ẽ ộ ệ

CODEpublic interface Product{ //hai state duoi day la final, tuc la lop implements khong duoc phep doi gia tri static string maker = “My Corp”; static string phone = “555-7767”; //behavior duoi day la abstract, tuc la khong co noi dung public int getPrice(int id);}

Bây gi , ta s vi t m t class có cài đ t (implements) giao di nờ ẽ ế ộ ặ ệ này

CODE

public class Shoe implements Product{ public int getPrince(int id) { return (id= =1)?5:10; } public String getMaker() { return maker; }}

Mu n implements nhi u giao di n, làm nh sau, ví d classố ề ệ ư ụ Toyota extends Car implements ActionCar, ActionMobilation

package-unitHãy t o 1 th m c có tên là Transportạ ư ụBên trong th m c này hãy t o 2 file là Car.java và Bicycle.javaư ụ ạ nh sauư--Car.java-

CODEpackage Transport;public class Car{ public String manufacturer; public int year;}

--Bicycle.java-

CODE

package Transport;public class Bicycle{ public int cost; public Bicycle(int cost) { this.cost = cost; }}

Nh v y là ta đã t o ra 1 gói ch a 2 l p là Car và Bicycle. Bâyư ậ ạ ứ ớ gi ta có 1 ch ng trình mu n s d ng gói này làờ ươ ố ử ụ TestProgram.java. Ta vi t:ế--ViDuTransport.java-

CODEimport Transport.*;class TestProgram{ public static void main(String args[]) { Car myCar = new Car(); myCar.manufacturer = “Toyota”; Bicycle myBicycle = new Bicycle(1500); }}

L u ý n u trong file ViDuTransport b n không khai báo importư ế ạ Transport.* thì b n v n có th khai báo t ng minh nh sauạ ẫ ể ườ ưTransport.Car myCar = new Transport.Car(); Ph ngĐi p2410ươ ệDec 31 2007, 12:48 AM

n p ch ng (overload) 1 ph ng th cạ ồ ươ ứ

CODEclass Vidu{ public satic void main(String a[]) { private float cost; public float CalculateSalePrice() { return cost*1.5; } public float CalculateSalePrice(double heso) { return cost*(1+heso); } }}

đây có 2 ph ng th c trùng tên CalculateSalePrice nh ngỞ ươ ứ ư ph ng th c th 2 khác tham s , g i là n p ch ngươ ứ ứ ố ọ ạ ồ* n p ch ng (overload) và ghi đè (override)ạ ồNh ng ph ng th c đ c n p ch ng là nh ng ph ng th cữ ươ ứ ượ ạ ồ ữ ươ ứ trong cùng m t l p, có cùng m t tên nh ng danh sách đ i sộ ớ ộ ư ố ố khác nhauPh ng th c đ c ghi đè là ph ng th c có m t l p cha,ươ ứ ượ ươ ứ ặ ở ớ đ c xác đ nh là ph ng th c chung cho các l p con, r i xu tượ ị ươ ứ ớ ồ ấ hi n các l p conệ ở ớN p ch ng là m t hình th c đa hình (polymorphism) trong quáạ ồ ộ ứ trình biên d ch (compile) còn ghi đè là trong quá trình th c thiị ự (runtime) Ph ngĐi p2410ươ ệDec 31 2007, 12:49 AM

Bài 6 – Các ki u d li u nguyên th y và phép toánể ữ ệ ủ- Ki u nguyên: g m s nguyên(int,long)ể ồ ố- Ki u d u ph y đ ng (hay ki u th c): g m sể ấ ẩ ộ ể ự ồ ố th c(float,double)ự- Ki u kí t (char)ể ự- Ki u chu i (String)ể ỗH ng kí t khai báo nh sau, ví d 'H' (khác v i "H" là m tằ ự ư ụ ớ ộ chu i kí t )ỗ ựM t s h ng kí t đ c bi t, ví d '\\' đ bi u di n chính kí t \,ộ ố ằ ự ặ ệ ụ ể ể ễ ự và \u bi u di n Unicode, ví d :ể ễ ụ'\u00B2' bi u di n ² (bình ph ng)ể ễ ươ'\u00BC' bi u di n ¼ (m t ph n t )ể ễ ộ ầ ư'\u0170' bi u di n ª (mũ a)ể ễ- Ki u booleanểCó 2 giá tr là 2 t khóa true và false, và không th chuy n ki uị ừ ể ể ể sang int*Khai báo bi nếint i,j; //2 bi n i và j có ki u d li u là intế ể ữ ệchar ch='A'; //bi n ch ki u char kh i t o giá tr đ u 'A'ế ể ở ạ ị ầ*Khai báo h ngằH ng đ c khai báo v i t khóa final. Ví d :ằ ượ ớ ừ ụfinal float PI = 3.14159;*Phép toánPhép toán c a Java gi ng C. Trong class java.lang.Math có m tủ ố ộ s method đ dùng trong toán h c nh sauố ể ọ ưdouble y = Math.pow(x,a) = xªvà random, sin, cos, tan, exp (mũ), log(logarit) ...* Các phép toán s h cố ọ- V i c ki u nguyên và ki u th c: + - * / (phép chia s cho raớ ả ể ể ự ẽ k t qu ki u th c n u m t trong 2 toán t là ki u th c)ế ả ể ự ế ộ ử ể ự- Chia h t (/) ch áp d ng khi c 2 toán t là ki u nguyên, ví dế ỉ ụ ả ử ể ụ 10/3=3- Chia l y d (%) ch áp d ng khi c 2 toán t là ki u nguyên, víấ ư ỉ ụ ả ử ể d 10%3=1ụ* Các phép toán quan h (so sánh)ệ

- Bao g m ==,<,>,<=,>= tr v ki u booleanồ ả ề ể* Các phép toán v i ki u logicớ ể- Bao g m and(kí hi u &&) or(kí hi u ||) not(kí hi u !)ồ ệ ệ ệ* Phép ++ và --- Phép này có 2 d ng, m t là ++bi n hay --bi n, hai là bi n++ạ ộ ế ế ế hay bi n-- S khác nhau ch là khi phép này th c hi n chung v iế ự ỉ ự ệ ớ m t phép toán khác thìộ- V i ++bi n và --bi n thì nó s th c hi n phép toán này tr cớ ế ế ẽ ự ệ ướ r i m i th c hi n phép toán khácồ ớ ự ệ- V i bi n++ và bi n-- thì nó s th c hi n phép toán khác tr cớ ế ế ẽ ự ệ ướ r i m i th c hi n phép toán nàyồ ớ ự ệ* Phép gán- Phép này có d ng a=5ạ- Phép gán ph c, ví d a+=5 nghĩa là a=a+5, hay a*=2 nghĩa làứ ụ a=a*2* Trình t k t h pự ế ợH u h t các phép toán đi u có trình t k t h p t trái sang ph i,ầ ế ề ự ế ợ ừ ả ch có các phép sau là t ph i sang tráiỉ ừ ả- Phép ++ và --- Các phép gán nh =,+=,-=,<<=,>>= ưPh ngĐi p2410ươ ệDec 31 2007, 12:50 AMBài 7 – M nh đ ifệ ền u em đ p thì tôi s c a em không thì tôi c a đ a khácế ẹ ẽ ư ư ứIF em đ p THEN tôi s c a em ELSE tôi c a đ a khácẹ ẽ ư ư ứIF(em đ p) tôi s c a em;ẹ ẽ ưELSE tôi c a đ a khác;ư ứCú pháp (syntax) c a m nh đ IF làủ ệ ềif(m nh đ ) l nh 1;ệ ề ệelse l nh 2;ệN u m nh đ đúng thì th c hi n l nh 1;ế ệ ề ự ệ ệKhông thì th c hi n l nh 2;ự ệ ệVí dụ

CODE

if(a>b) System.out.println(“So lon nhat la “+a);else System.out.println(“So lon nhat la “+b);

*Ta xây d ng m t bài toán làm tròn sự ộ ốNh p vào m t s b t kì. N u ph n th p phân s này >=0.5, làmậ ộ ố ấ ế ầ ậ ố tròn tăng lên m t đ n v , ng c l i gi m đi m t đ n v .ộ ơ ị ượ ạ ả ộ ơ ị

CODEimport java.io.*;public class Hello { public static void main(String[] args) throws Exception { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Nhap a: "); float a = Float.parseFloat(in.readLine()); float ketqua=a%1; if(ketqua>=0.5) a=a-ketqua+1; else a=a-ketqua; System.out.println("Ket qua bai toan la: " + a); }}

* Phép đi u ki n ? và phép ch n :ề ệ ọ- Gi s có m nh đ ifả ử ệ ềif(a>b) a=2;else a=0;Phép đi u ki n bi u di n nh sau a=a>b?2:0 nghĩa là n u chânề ệ ể ễ ư ế tr c a a>b là đúng thì a=2 n u là sai thì a=0ị ủ ế* Sau khi h c xong if, b n có r t nhi u bài t p đ mà … làm, cọ ạ ấ ề ậ ể ổ đi n nh t v n là gi i ph ng trình b c m t và hai, ngoài ra cònể ấ ẫ ả ươ ậ ộ nhi u bài t p khác n a. đây ch có gi i ph ng trình b c m t.ề ậ ữ Ở ỉ ả ươ ậ ộ B n nên tìm nhi u bài t p đ t làm tr c khi ti p t c ph n k .ạ ề ậ ể ự ướ ế ụ ầ ếVí d : ph ng trình b c 1ụ ươ ậ

CODEimport java.io.*;public class Hello { public static void main(String[] args) throws Exception { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); System.out.println("Giai phuong trinh bac nhat dang ax+b=0"); System.out.print("Nhap he so a: "); float a = Float.parseFloat(in.readLine()); System.out.print("Nhap he so b: "); float b = Float.parseFloat(in.readLine()); if(a==0) { if(b==0) System.out.println("Phuong trinh vo so nghiem"); if(b!=0) System.out.println("Phuong trinh vo dinh"); } else System.out.println("Phuong trinh mot nghiem x=" + -b/a); }}Ph ngĐi p2410ươ ệDec 31 2007, 12:51 AMBài 8 – switchB n đã h c xong if. B n mu n dùng vòng l p if đ đánh giáạ ọ ạ ố ặ ể đi m s nh p vào. B n s vi t ch ng trình sau đâyể ố ậ ạ ẽ ế ươ

CODEimport java.io.*;public class Hello { public static void main(String[] args) throws Exception { BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

System.out.print("Nhap diem so: "); int diem = Integer.parseInt(in.readLine()); if(diem<=2) System.out.println("Yeu"); if((diem>2) && (diem<=3)) System.out.println("Trung binh"); if((diem>3) && (diem<=4)) System.out.println("Kha"); if((diem>4) && (diem<5)) System.out.println("Gioi"); if(diem==5) System.out.println("Xuat sac"); }}

Thay vì l p l i nh ng câu if y, b n nên dùng switchặ ạ ữ ấ ạ

CODEimport java.io.*;public class Hello { public static void main(String[] args) throws Exception { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Nhap diem so: "); int diem = Integer.parseInt(in.readLine()); switch(diem) { case 0: case 1: case 2:System.out.println("Yeu");break; case 3:System.out.println("Trung binh");break; case 4: case 5:System.out.println("Gioi");break; default:System.out.println("Vao sai"); } }}

*break v i switch: break s thoát ngay ra kh i kh i l nh trongớ ẽ ỏ ố ệ thân c a switch ủPh ngĐi p2410ươ ệDec 31 2007, 01:08 AMBài 9 – StringKhác v i C, String là m t l p c a Java. String đ c khai báo nhớ ộ ớ ủ ượ ư sauString a = "Hello";C ng 2 String b ng d u +ộ ằ ấSystem.out.println("Gia tri la " + n);Java có kh năng t chuy n ki u b t c d li u ki u s nào khiả ự ể ể ấ ứ ữ ệ ể ố c ng vào String. Dù n là int, float, double đ u có th chuy nộ ề ể ể thành String nh m o v t ("" + n)ờ ẹ ặCác method trong class String* substringString s1 = "Hello";String s2 = s1.substring(0,4); //b t đ u t kí t th 0 (t c là 'H')ắ ầ ừ ự ứ ứ l y đi 4 kí t (t c là "Hell")ấ ự ứ* lengthint n = s1.length(); //t c là b ng 5ứ ằ* charAtchar ch = s1.charAt(4); //t c là b ng 'o'ứ ằĐây là method tìm kí t th i trong String, các kí t trong Stringự ứ ự đ c đánh s t 0ượ ố ừ* equalsKi u tra xem chu i ngu n s có gi ng chu i đích d hay không, taể ỗ ồ ố ỗ dùng method equals tr v booleanả ềboolean b = s.equals(t);String không gi ng d li u ki u s , tuy t đ i không dùng gi ngố ữ ệ ể ố ệ ố ố nh if(s==t)ư* compareToint a = s2.compareTo(s1);a>0 s2>s1

a<0 s2<s1a=0 s2=s1So sánh gi a s2 và s1 là so sánh th t gi a kí t đ u c a haiữ ứ ự ữ ự ầ ủ chu i so đi, ví d "kc" > "kazbe"ỗ ụ* toCharArray (đ i chu i ra m ng kí t )ổ ỗ ả ựchar[] chuoi = s1.toCharArray();* indexOfString s1 = "Hello Everybody";String s2 = "lo";int n = s1.indexOf(s2); //n s b ng 4ẽ ằĐây là method tr v v trí c a chu i s2 trong chu i s1, n uả ề ị ủ ỗ ỗ ế không tìm th y s tr v -1ấ ẽ ả ề* Chuy n ki u t String ra d li u ki u sể ể ừ ữ ệ ể ốChuy n t d li u ki u s ra String khá d dàng, dùng "" + n,ể ừ ữ ệ ể ố ễ nh ng ng c l i thì ph i dùng các method t ng ng.ư ượ ạ ả ươ ứCác method này n m trong góijava.lang, trong các class Byte,ằ Short, Integer, Long, Float, DoubleString input = "230";int n = Integer.parseInt(input); //n s b ng 230ẽ ằT ng t v i các method sau Byte.parseByte, Short.parseShort,ươ ự ớ Float.parseFloat, ... Ph ngĐi p2410ươ ệDec 31 2007, 02:02 AMBài 10 – vòng l p forặ

CODEfor(int i=0;i<n;i++) s+=i;

3 thành ph n trong câu for ta có th b h t nh ng ph i gi l iầ ể ỏ ế ư ả ữ ạ các d u ; khi đó n n mu n ta có th đ t phép toán đi u khi nấ ế ố ể ặ ề ể vòng l p trong thân l nh nh sauặ ệ ư

CODEfor(int i=0;i<n;){ s+=i; i++;}

*break v i for: break s thoát ngay ra kh i vòng forớ ẽ ỏ

CODEfor(int i=0;i<n;i++){ System.out.println(i);break; System.out.println("Tiep tuc");}

K t qu in ra không có câu "Tiep tuc" vì break nh y ngay ra kh iế ả ả ỏ vòng for sau khi in 1*continue v i for: continue s khi n vòng for b t đâu 1 chu trìnhớ ẽ ế ắ m i và b qua t t c các l nh bên d i nóớ ỏ ấ ả ệ ướVD: in t t c các s t 0 đ n 10, b qua 3,4,5ấ ả ố ừ ế ỏ

CODEfor(int i=0;i<10;i++){ if((i= =3)||(i= =4)||(i= =5)) continue; System.out.println(i);}Ph ngĐi p2410ươ ệDec 31 2007, 05:09 AM

Bài 11 – while

CODEwhile(bi u th c)ể ứ l nh;ệ

N u bi u th c đúng thì th c hi n l nhế ể ứ ự ệ ệ*break v i while: break s thoát ngay ra kh i vòng whileớ ẽ ỏ

CODEint i=0;while(i<10){ System.out.println(i);break; i++;}

S ch in ra 0ẽ ỉ* continue v i while: nó s xác đ nh giá tr bi u th c vi tớ ẽ ị ị ể ứ ế ngay sau while

CODEint i=0;while(i<10){ System.out.println(i);continue; i++;}

Ta s đ c m t lo t in 0 vô t n ẽ ượ ộ ạ ậPh ngĐi p2410ươ ệDec 31 2007, 05:11 AMBài 12 – vòng l p do..whileặ

CODEdo l nh;ệwhile(bi u th c);ể ứ

N u bi u th c đúng thì ti p t c th c hi n l nhế ể ứ ế ụ ự ệ ệ*break v i do..while: break s thoát ngay ra kh i vòng whileớ ẽ ỏ

CODEint i=0;do{ System.out.println(i);break; i++;}

while(i<10);

S ch in ra 0ẽ ỉ* continue v i while: nó s xác đ nh giá tr bi u th c vi tớ ẽ ị ị ể ứ ế ngay sau

CODE

whileint i=0;do{ System.out.println(i);continue; i++;}while(i<10);

Ta s đ c m t lo t in 0 vô t n ẽ ượ ộ ạ ậPh ngĐi p2410ươ ệDec 31 2007, 05:12 AMBài 13 – arrayTa khai báo 1 m ng v i câu l nh sau, và không cung c p s ph nả ớ ệ ấ ố ầ tửint[] a;Tuy v y, v i Java, đ dùng đ c m t array, ta c n ph i kh i t oậ ớ ể ượ ộ ầ ả ở ạ array đó, và lúc này ph i cung c p s ph n tả ấ ố ầ ửint[] a;a = new int[100];Hai câu có th vi t l i thành m t câuể ế ạ ộint[] a = new int[100];Java s kh i t o m t m ng 100 ph n t đ u là int có đánh th tẽ ở ạ ộ ả ầ ử ề ứ ự t 0 đ n 99ừ ếM ng có giá tr đ u: M ng lo i này không c n new mà cũngả ị ầ ả ạ ầ ch ng c n s ph n tẳ ầ ố ầ ửint[] a = {1,45,6,8,21};Các method v i m ngớ ả* lengthmethod này s cung c p s ph n t c a m ng, ví d ta mu nẽ ấ ố ầ ử ủ ả ụ ố gán giá tr s cho các ph n t c a m ng aị ố ầ ử ủ ảfor(int i=0;i<a.length;i++) a|i|=i; l u ý là length, không ph iư ả length()*System.arraycopy

Gi s , ban đ u ta có 2 m ngả ử ầ ảint[] s = {1,3,5,7,9,11,13,15};int[] d = {2,4,6,8,10,12,14};method arraycopy trong gói SystemSystem.methodcopy(s,3,d,2,4);s cho ra m t m ng d m i là {2,4,7,9,11,13,14}ẽ ộ ả ớmethod này s thay th 4 ph n t , tính t ph n t th 2 trongẽ ế ầ ử ừ ầ ử ứ m ng d, b ng ng n y ph n t tính t ph n t th 3 trong m ngả ằ ầ ấ ầ ử ừ ầ ử ứ ả sCác method n m trong class java.util.Arraysằ* void sortNó s s p x p m t m ng s tăng d nẽ ắ ế ộ ả ố ầint[] s = {28,7,14,11};Arrays.sort(s);* int binarySearchNó s tìm v trí c a m t ph n t trong m t m ng, tr v -1 n uẽ ị ủ ộ ầ ử ộ ả ả ề ế không tìm th yấint[] s = {28,7,14,11};int n = Arrays.binarySearch(s,14); n s b ng 2ẽ ằM ng nhi u chi uả ề ềint[][] = new int[100][50];Ho c khai báo 1 m ng có giá tr đ u. Đây là m ng 2 chi u g mặ ả ị ầ ả ề ồ 4 ph n t là 4 m ng 1 chi u, m i m ng 1 chi u ch a 3 ph n tầ ử ả ề ỗ ả ề ứ ầ ử

CODEint[][] a ={{16, 3, 2},{5, 10, 11},{9, 6, 7},{4, 15, 14}};Ph ngĐi p2410ươ ệDec 31 2007, 05:26 AM

Bài 14 - ngo i lạ ệ

CODE[code]int x,y;x=10;y=x-10;x=x/y;

Khi ch y đo n mã này b n s th y xu t hi n thông báoạ ạ ạ ẽ ấ ấ ệjava.lang.ArithmeticException: divide by zeroVà ch ng trình s thoát ra ngay lúc đó. Mu n ch ng trìnhươ ẽ ố ươ ch y ti p và không thoát ra, ta đón "b t" ngo i l này, đ a raạ ế ắ ạ ệ ư bi n e, cu i cùng in e (đ xem là ngo i l gì)ế ố ể ạ ệ

CODEint x,y;try{ x=10;y=x-10; x=x/y;}catch(Exception e){ System.out.println(e.getMessage());}

X lí ngo i l (Exception)ử ạ ệĐ "ném" ngo i l do b t c dòng mã nào trong m t ph ngể ạ ệ ấ ứ ộ ươ th c sinh ra, b n có th khai báo đ ném b ngo i l đóứ ạ ể ể ỏ ạ ệ

CODEpublic void divide() throws Exception{

int a=5/0;}

ho c n u mu n "b t" ngo i l đó l i đ xem đó là ngo i l gìặ ế ố ắ ạ ệ ạ ể ạ ệ đ x lí, b n "b t" nó r i in raể ử ạ ắ ồ

CODEtry{ int a=5/0;}catch(Exception e){ System.out.println(e.getMessage());}

N u mu n ch ng trình thành công thì sinh thông báo thànhế ố ươ công, th t b i thì sinh thông báo ngo i l , b n có th dùngấ ạ ạ ệ ạ ể

CODEboolean done=false;try{ int a=5/b; done=true;}catch(Exception e){ System.out.println(e.getMessage());}if(done==true) System.out.println("Successful");Ph ngĐi p2410ươ ệ

Dec 31 2007, 05:58 AMBài 15 - Vector (m ng không gi i h n s ph n t )ả ớ ạ ố ầ ửCác method trong bài này n m 2 class java.util.Vector vàằ ở java.util.EnumerationKhai báoVector vt = new Vector();Nh p d li u cho m t Vector (class Console n m trong góiậ ữ ệ ộ ằ corejava)L u ý là m i ph n t c a Vector đ u ph i là m t đ i t ng, nênư ỗ ầ ử ủ ề ả ộ ố ượ ta ph i có new Integer(n) khi mu n đ a vào m t bi n ki u int.ả ố ư ộ ế ể T ng t v i Byte, Long, Float, ...ươ ự ớ

CODEdo{int n = Console.readInt("");if(n!=0) vt.addElement(new Integer(n));}while(n!=0);

In ra các ph n t c a m t Vectorầ ử ủ ộ

CODEfor(int i=0;i<vt.size();i++)System.out.println(vt.elementAt(i));

Đ đ a Vector v ki u m ng cho d thao tác, ta đ a v ki uể ư ề ể ả ễ ư ề ể Enumeration (m t ki u m ng)ộ ể ảEnumeration e = vt.elements();Nh v y ta có m ng e ki u Enumeration sao chép y khuôn Vectorư ậ ả ể vt đ d x lí, không đ ng đ n Vector vtể ễ ử ụ ếIn ra các ph n t c a m t Enumerationầ ử ủ ộ

CODE

while(e.hasMoreElements())System.out.println(e.nextElement());Ph ngĐi p2410ươ ệDec 31 2007, 08:35 AMBài 16 - L p n i (l p n m trong l p khác)ớ ộ ớ ằ ớ

CODEpublic class TestProgram{ static int currentCount; static class Apple { int weight; public Apple(int weight) { this.weight=weight; currentCount++; } public int Weight() { return weight; } } public static void main(String args[]) { Apple a=new Apple(12);//khoi tao 1 qu tao nang 12kgả System.out.print(a.Weight()); }}

đây ta th y l p n i Apple trong l p TestProgram, khi biên d chỞ ấ ớ ộ ớ ị Java s làm xu t hi n 2 file là TestProgram.class vàẽ ấ ệ TestProgram$Apple.class. u đi m khi s d ng l p n i là:Ư ể ử ụ ớ ộ- th hi n tính đóng gói caoể ệ

- các l p n i có th truy xu t tr c ti p các bi n c a l p chaớ ộ ể ấ ự ế ế ủ ớL u ý là l p n i khác v i các l p mà n m chung m t file, ví dư ớ ộ ớ ớ ằ ộ ụ nh t p tin MainClass.java d i đâyư ậ ướ

CODEpublic class MainClass{}class Subclass{}

Khi biên d ch nó s t o ra 2 file là MainClass.class vàị ẽ ạ Subclass.class Ph ngĐi p2410ươ ệDec 31 2007, 08:48 AMBài 17 - T o t p tin jar t ch yạ ậ ự ạGi s ch ng trình c a b n có vài file .class trong đó fileả ử ươ ủ ạ ch ng trình chính là MainPro.class ch ng h n.ươ ẳ ạB n hãy t o m t file l y tên là mymf.mf có n i dung nh sauạ ạ ộ ấ ộ ưMain-Class: MainPro

B t bu c ph i chính xác nh th (t c là ph i có c xu ng dòng),ắ ộ ả ư ế ứ ả ả ố không thì trình ch y jar không hi u đ c.ạ ể ượSau đó b n vào %JAVA_HOME%\bin\ chép t t c các t p tinạ ấ ả ậ .class c a ng d ng và c mymf.mf vào đó, r i ch y jar.exe v iủ ứ ụ ả ồ ạ ớ tham s dòng l nh nh sauố ệ ưjar cmfv mymf.mf MyProgram.jar *.classT ng t n u b n mu n đ a thêm 2 th m c dir1 và dir2 vô fileươ ự ế ạ ố ư ư ụ JAR thì b n cũng gõạjar cmfv mymf.mf MyProgram.jar *.class dir1 dir2Trình jar s t o file MyProgram.jar (tên khác tùy b n) có thẽ ạ ạ ể

ch y đ c, không ph i dùng l nh java hay gi s không có IDEạ ượ ả ệ ả ử quen thu c c a b n ộ ủ ạPh ngĐi p2410ươ ệDec 31 2007, 08:51 AMCH NG 2 - JAVA VÀ L P TRÌNH GIAO DI N B NGƯƠ Ậ Ệ Ằ SWINGĐã đ n lúc b n nên s d ng m t IDE đ công vi c c a mìnhế ạ ử ụ ộ ể ệ ủ nhanh chóng và d dàng h n. Applet đã tr thành đ c , chúng taễ ơ ở ồ ổ nh y luôn sang AWT - SwingảBài 1 - M đ u v Swingở ầ ềCh ng trình này s t o m t JFrame đ n gi n nh tươ ẽ ạ ộ ơ ả ấ

CODEimport javax.swing.JFrame;class HelloWorldSwing{ public static void main(String[] a) { JFrame frame=new JFrame("Main Frame");//Main Frame la ten cai cua so frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//ham dong cua so lai JLabel label=new JLabel("Hello Everybody, label contain context");//mot doi tuong do hoa frame.getContentPane().add(label);//dua doi tuong do hoa vao trong frame frame.pack();//"dong goi" lai toan bo trinh do hoa frame.setVisible(true);//hien thi trinh do hoa ra man hinh }}

Đây là m t Frame đ n gi n khác, nh ng có th dùng d dàng choộ ơ ả ư ể ễ vi c m r ng ch ng trìnhệ ở ộ ươ

CODEimport javax.swing.JFrame;import java.awt.*;class Execute extends JFrame{ Container container = getContentPane(); public Execute(String title) { super(title); //tuong duong JFrame(title) Label label=new Label("Hello Everybody, label contain context"); container.add(label); } public static void main(String a[]) { Execute exe = new Execute("Frame"); exe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); exe.pack(); exe.setVisible(true); }}

H tr ti ng Vi tỗ ợ ế ệGi s b n mu n nút b m c a b n có dòng "Vi t Nam" và b nả ử ạ ố ấ ủ ạ ệ ạ không bi t in nh th nào, ch ng trình sau s giúp b nế ư ế ươ ẽ ạJButton b=new JButton("Vi\u1EC7t Nam");\u1EC7 là mã Unicode c a kí t mà Java h tr . T t c kí tủ ự ệ ỗ ợ ấ ả ự Vi t đ u đ c h tr trong Latin và Latin Extendệ ề ượ ỗ ợL u ý là ch có javax.swing m i h tr , java.awt không h tr ư ỉ ớ ỗ ợ ỗ ợPh ngĐi p2410ươ ệDec 31 2007, 09:34 AM

Bài 2 - Cài đ t b nghe và s ki n cho các đ i t ng đ h aặ ộ ự ệ ố ượ ồ ọCác đ i t ng đ h a s dĩ có th ho t đ ng đ c là nh có cácố ượ ồ ọ ở ể ạ ộ ượ ờ b nghe "nghe" các hành đ ng mà ng i dùng t ng tác v iộ ộ ườ ươ ớ chu t hay bàn phím, và t đó cho ra các s ki n t ng ng.ộ ừ ự ệ ươ ứTrong ví d d i đây ta có class EventQuit là m t b nghe, bụ ướ ộ ộ ộ nghe này th c hi n ph ng th c actionPerformed chính là ch aự ệ ươ ứ ứ nh ng s ki n c a b nghe đó. Đ i t ng eventQuit là m tữ ự ệ ủ ộ ố ượ ộ instance c a class EventQuit. Đ cài đ t b nghe này cho đ iủ ể ặ ộ ố t ng đ h a button ta dùng ph ng th c addActionListener.ượ ồ ọ ươ ứ

CODEimport javax.swing.JFrame;import java.awt.*;import java.awt.event.*;class Core extends JFrame{ Container container = getContentPane(); public Core(String title) { super(title); Button button = new Button("My button"); EventQuit eventQuit=new EventQuit(); button.addActionListener(eventQuit); container.add(button); } public static void main(String a[]) { Core exe = new Core("Frame"); exe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); exe.pack(); exe.setVisible(true); } class EventQuit implements ActionListener

{ public void actionPerformed(ActionEvent e) { System.exit(0); } }}

Bây gi , n u ta mu n rút g n, cài đ t b nghe và hành đ ng tr cờ ế ố ọ ặ ộ ộ ự ti p, ta làm nh sauế ư

CODEimport javax.swing.JFrame;import java.awt.*;import java.awt.event.*;class Core{ public static void main(String args[]) { JFrame frame = new JFrame("My frame"); final JButton button = new JButton("My button"); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if(e.getSource()==button) System.exit(0); //n u event này có source do button sinh raế } }); frame.add(button); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.pack();

frame.setVisible(true); }}Ph ngĐi p2410ươ ệDec 31 2007, 10:06 AMBài 3 - setLayout(null) đi đôi v i setBoundsớsetLayout m nh nh t trong Swing là setLayout(null) cho đ iạ ấ ố t ng add, còn đ i v i đ i t ng b add thì setBounds, cú phápượ ố ớ ố ượ ị setBounds(x,y,width,height)Trên monitor, Java tính đi m có t a đ (0,0) là đi m trái trênể ọ ộ ể cùng. Sau đó tr c hoành (x) là chi u ngang monitor t trái sangụ ề ừ ph i và tr c tung (y) là chi u d c monitor t trên xu ng d iả ụ ề ọ ừ ố ướPh ng th c này s t o ra m t hình ch nh t o bao quanh đ iươ ứ ẽ ạ ộ ữ ậ ả ố t ng b add, hình ch nh t này có t a đ góc đ u tiên là (x,y) vàượ ị ữ ậ ọ ộ ầ dài width cao height. Ví d nh bài sau:ụ ư

CODEimport javax.swing.JFrame;import java.awt.*;class Core{ public static void main(String args[]) { JFrame frame = new JFrame("My frame"); frame.setLayout(null); JButton b1 = new JButton("Button 1"); b1.setBounds(0,0,100,25); frame.add(b1); JButton b2 = new JButton("Button 2"); b2.setBounds(100,0,100,25); frame.add(b2); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true);

}}

Nh v y là chúng ta đã setLayout(null) cho frame và l n l tư ậ ầ ượ setBounds (kích th c cũng nh v trí) cho 2 button. V y đ setướ ư ị ậ ể kích th c cũng nh v trí cho chính frame thì dùng 2 ph ngướ ư ị ươ th c sau:ứ

CODEimport javax.swing.JFrame;import java.awt.*;class Core{ public static void main(String args[]) { JFrame frame = new JFrame("My frame"); frame.setLayout(null); JButton b1 = new JButton("Button 1"); b1.setBounds(0,0,100,25); frame.add(b1); JButton b2 = new JButton("Button 2"); b2.setBounds(100,0,100,25); frame.add(b2); frame.setLocation(200,100); frame.setSize(200,60); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); }}

Bài này y chang bài trên, có khác là gi đây v trí đi m đ u c aờ ị ể ầ ủ

frame đã đ c xác đ nh b ng setLocation, N u khôngượ ị ằ ế setLocation, m c đ nh là (0,0) còn kích th c đ c xác đ nhặ ị ướ ượ ị b ng setSize. L u ý là 200=chi u dài 2 cái button c ng l i cònằ ư ề ộ ạ 60=chi u r ng button + chi u r ng thanh ban đ u (=35). ề ộ ề ộ ầPh ngĐi p2410ươ ệDec 31 2007, 10:25 AMBài 4 - setLayout không ph thu c phân gi i màn hìnhụ ộ ảV i các ng d ng nh thì ch a c n quan tâm l m. V i các ngớ ứ ụ ỏ ư ầ ắ ớ ứ d ng trung bình và l n thì ng d ng "co giãn" tùy theo đ phânụ ớ ứ ụ ộ gi i s là l i th l n. Ta có th l y đ phân gi i hi n hành vàả ẽ ợ ế ớ ể ấ ộ ả ệ tùy bi n ng d ng nh sau:ế ứ ụ ư

CODEimport javax.swing.JFrame;import java.awt.*;public class Core{ public static void main(String[] args) { Toolkit kit = Toolkit.getDefaultToolkit(); Dimension screenSize = kit.getScreenSize(); int screenWidth = screenSize.width; int screenHeight = screenSize.height; JFrame frame = new JFrame("My frame"); frame.setSize(screenWidth,screenHeight); frame.setResizable(false); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); }}

Đ ng i dùng không thay đ i đ c size c a mình, dùngể ườ ổ ượ ủ frame.setResizable(false) Ph ngĐi p2410ươ ệDec 31 2007, 10:32 AMBài 5 - Các đ i t ng đ h a c b n c a Javaố ượ ồ ọ ơ ả ủ* ButtonButton button=new Button("OK");add(button);ho c add(new Button("OK"));ặButton s d ng ActionListener đ nghe s ki n và truy n hànhử ụ ể ự ệ ề đ ngộ* LabelLabel label=new Label("The sum of values here:");Label là nhãn* PanelPanel panel=new Panel();Panel là khung ch a. ứPh ngĐi p2410ươ ệDec 31 2007, 10:57 AMBài 6 - CheckboxCheckbox dùng đ chuy n đ i tr ng thái (state) gi a yes/no hayể ể ổ ạ ữ true/false. Khi state là true thì ô đã đ c đánh d u. Có 3 instructorượ ấ th ng dùng là:ườCheckbox() Checkbox(String label) Checkbox(String label,boolean state) v i label hi n th nhãn còn state là true/falseớ ể ịĐ xác l p state cho m t Checkbox ta dùng ph ng th cể ậ ộ ươ ứ setState(true)Đ l y state hi n hành c a m t Checkbox ta dùng ph ng th cể ấ ệ ủ ộ ươ ứ getState()Đ x lí tình hu ng c a Checkbox khi nó thay đ i tr ng thái, taể ử ố ủ ổ ạ ph i cho nó implements giao di n ItemListener, và bên trong nóả ệ có ph ng th c itemStateChanged(ItemEvent e). Còn đươ ứ ể Checkbox th c hi n nh ng hành đ ng c a l p y thì ta ph iự ệ ữ ộ ủ ớ ấ ả dùng ph ng th c addItemListener.ươ ứ

CODEimport javax.swing.JFrame;import java.awt.*;import java.awt.event.*;class Core{ public static void main(String args[]) { JFrame frame = new JFrame("My frame"); Checkbox checkbox=new Checkbox("Documents",false); checkbox.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { System.out.println("Changed"); } }); frame.add(checkbox); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.pack(); frame.setVisible(true); }}

ví d này thì m i l n b n thay đ i tr ng thái Checkbox, mànỞ ụ ỗ ầ ạ ổ ạ hình Console s in ra câu "Changed" Bây gi n u b n mu n mànẽ ờ ế ạ ố hình in ra ch khi nào nó đ c ch n mà thôi, thì s a l i ph ngỉ ượ ọ ử ạ ươ th c itemStateChanged nh sauứ ưif(e.getStateChange()==ItemEvent.SELECTED) System.out.println("Changed");

SELECTED và DESELECTED là 2 h ng s bi n di n tr ng tháiằ ố ể ễ ạ true hay false c a Checkbox ủPh ngĐi p2410ươ ệDec 31 2007, 11:06 AMBài 7 - Checkbox nhi u tùy ch n (CheckboxGroup)ề ọĐ u tiên, hãy t o m t nhóm Checkbox nh sau CheckboxGroupầ ạ ộ ư g=new CheckboxGroup();Sau đó đ a các Checkbox mu n đ a vào nhóm Checkbox đó như ố ư ư sauCheckbox c1=new Checkbox("Option 1",g,true);Checkbox c2=new Checkbox("Option 2",g,false);Checkbox c2=new Checkbox("Option 2",g,false);C 3 cái cùng mang giá tr false cũng đ c, nh ng n u là true thìả ị ượ ư ế ch đ c m t cái trueỉ ượ ộBài t p sau s t o m t CheckboxGroup có 3 Checkbox. Đậ ẽ ạ ộ ể listener bi t là Checkbox nào đ c ch n, ta dùng ph ng th cế ượ ọ ươ ứ getItem (tr v Object) L u ý là đ c 3 Checkbox cùng hi n thả ề ư ể ả ể ị trên frame, ta dùng Panel

CODEimport javax.swing.JFrame;import java.awt.*;import java.awt.event.*;class Core{ public static void main(String args[]) { JFrame frame = new JFrame("My frame"); CheckboxGroup g=new CheckboxGroup(); Checkbox c1=new Checkbox("Option 1",g,true); Checkbox c2=new Checkbox("Option 2",g,false); Checkbox c3=new Checkbox("Option 3",g,false); MyItemListener listener = new MyItemListener(); c1.addItemListener(listener);

c2.addItemListener(listener); c3.addItemListener(listener); Panel panel=new Panel(); frame.add(panel); panel.add(c1); panel.add(c2); panel.add(c3); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.pack(); frame.setVisible(true); }}class MyItemListener implements ItemListener{ public void itemStateChanged(ItemEvent e) { if(e.getStateChange()==ItemEvent.SELECTED) { Object temp=e.getItem(); String s=(String)temp; System.out.println(s); } }}

L u ý (String)temp th c ra là l y cái label c a Object temp. 2ư ự ấ ủ l nh có th thay th b ng 1 l nh String s=(String)e.getItem(); ệ ể ế ằ ệPh ngĐi p2410ươ ệDec 31 2007, 11:14 AMBài 8 - ChoiceChoice myChoice = new Choice();sau đó đ a m c ch n vào Choice nh sauư ụ ọ ưmyChoice.addItem("Red");

myChoice.addItem("Green");myChoice.addItem("Blue");Khi đó 3 m c ch n đ c đánh s l n l t là 0,1,2 (đ t là i: thụ ọ ượ ố ầ ượ ặ ứ t m c ch n)ự ụ ọĐ b m c ch n nào ra kh i Choice, ta dùngể ỏ ụ ọ ỏ myChoice.remove(i) v i i là th t m c ch nớ ứ ự ụ ọĐ b t t c m c ch n kh i Choice, ta dùngể ỏ ấ ả ụ ọ ỏ myChoice.removeAll()Đ ch n m c ch n nào trong Choice, ta dùng muChoice.select(i)ể ọ ụ ọL u ý là ta có th dùng s th t ho c nhãn đ u đ c, ví dư ể ố ứ ự ặ ề ượ ụ myChoice.remove("Blue") hay myChoice.remove(2) đ u đ c.ề ượ Và n u có 10 m c ch n có nhãn là "Blue" thìế ụ ọ myChoice.remove("Blue") ch xóa m c ch n đ u tiên nó tìm th yỉ ụ ọ ầ ấ

CODEimport javax.swing.JFrame;import java.awt.*;import java.awt.event.*;class Core{ public static void main(String args[]) { JFrame frame = new JFrame("My frame"); Choice myChoice = new Choice(); myChoice.addItem("Red"); myChoice.addItem("Green"); myChoice.addItem("Blue"); myChoice.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { if(e.getStateChange()==ItemEvent.SELECTED) {

String s=(String)e.getItem(); System.out.println(s); } } }); frame.add(myChoice); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.pack(); frame.setVisible(true); }}Ph ngĐi p2410ươ ệDec 31 2007, 01:26 PMBài 9 - ListV i Checkbox, ta ch có th ch n gi a 2 tr ng thái true/false c aớ ỉ ể ọ ữ ạ ủ m t đ i t ng. V i CheckboxGroup và Choice, ta ch có th m tộ ố ượ ớ ỉ ể ộ trong các đ i t ng. V i List, ta có th ch n m t vài đ i t ng,ố ượ ớ ể ọ ộ ố ượ th m chí ch n h t.ậ ọ ếM c đ nh c a m t List là ch hi n th t i đa 4 ph n t . Cácặ ị ủ ộ ỉ ể ị ố ầ ử ph ng th c kh i t o:ươ ứ ở ạList() s t o m t List m i l n ch n ch ch n đ c m t hàngẽ ạ ộ ỗ ầ ọ ỉ ọ ượ ộ (đ n ch n)ơ ọList(int num) s t o m t danh sách m i l n ch n m i l n ch nẽ ạ ộ ỗ ầ ọ ỗ ầ ọ ch ch n đ c m t hàng, nh ng s hi n th num hàng ch khôngỉ ọ ượ ộ ư ẽ ể ị ứ ph i là 4 nh m c đ nhả ư ặ ịList(int num,boolean multiMode) y chang cái trên, nh ng thêm làư m i l n ch n đ c ch n nhi u ph n t m t lúc (n u multiModeỗ ầ ọ ượ ọ ề ầ ử ộ ế là true) (đa ch n)ọNh v y List(7) và List(7,false) là nh nhau, hi n th 7 hàng m tư ậ ư ể ị ộ lúc và m i l n ch n ch ch n đ c m t hàngỗ ầ ọ ỉ ọ ượ ộĐ add ph n t vào List:ể ầ ửList myList=new List(3,true);myList.add("Pascal");myList.add("C\\C++");

myList.add("VB");myList.add("Java");Các ph n t cũng đ c đánh th t t 0. Đ thêm ph n t vào vầ ử ượ ứ ự ừ ể ầ ử ị trí nào ta đ a vào ch s ta thích, ví dư ỉ ố ụmyList.add("Assembler",0);Đ thay th m t ph n t t i v trí nào ta dùng ph ng th cể ế ộ ầ ử ạ ị ươ ứmyList.replaceItem("VB.NET",2); //VB b thay b ng VB.NETị ằĐ xóa m t ph n t nào ta dùng ph ng th c remove(i)ể ộ ầ ử ươ ứmyList.remove(3); hay myList.remove("Java"); đ u đ c. Và n uề ượ ế có 10 m c ch n có nhãn là "Java" thì myList.remove("Java") chụ ọ ỉ xóa ph n t đ u tiên nó tìm th yầ ử ầ ấĐ xóa t t c ta dùng myList.removeAll();ể ấ ảĐ ch n ph n t và b ch n ph n t ta dùng select(i) vàể ọ ầ ử ỏ ọ ầ ử deselect(i) Ph ngĐi p2410ươ ệDec 31 2007, 01:31 PMBài 10 - Làm vi c v i Listệ ớ* V i List đ n ch nớ ơ ọĐ bi t đ c ph n t nào đã đ c ch n, ta dùng 2 ph ng th cể ế ượ ầ ử ượ ọ ươ ứ int getSelectedIndex() và String getSelectedItem()int getSelectedIndex() s tr v s th t c a ph n t đã đ cẽ ả ề ố ứ ự ủ ầ ử ượ ch n, n u không có ph n t nào thì tr v -1ọ ế ầ ử ả ềString getSelectedItem() s tr v label c a ph n t đã đ cẽ ả ề ủ ầ ử ượ ch n, n u không có ph n t nào thì tr v ""ọ ế ầ ử ả ề

CODEfinal List l=new List();l.add("Pascal");l.add("C\\C++");l.add("VB");l.add("Java");frame.add(l);l.addItemListener(new ItemListener(){ public void itemStateChanged(ItemEvent e)

{ System.out.println(l.getSelectedIndex()+" "+l.getSelectedItem()); }});

* V i List đa ch nớ ọĐ bi t đ c nh ng ph n t nào đã đ c ch n, ta dùng 2ể ế ượ ữ ầ ử ượ ọ ph ng th c int[] getSelectedIndexs() và String[]ươ ứ getSelectedItems()int[] getSelectedIndexs() là m t m ng s tr v nh ng s th tộ ả ẽ ả ề ữ ố ứ ự c a các ph n t đã đ c ch n, n u không có ph n t nào thì trủ ầ ử ượ ọ ế ầ ử ả v -1ềString[] getSelectedItems() là m t m ng s tr v nh ng labelộ ả ẽ ả ề ữ c a các ph n t đã đ c ch n, n u không có ph n t nào thì trủ ầ ử ượ ọ ế ầ ử ả v ""ề

CODEfinal List l=new List(3,true);l.add("Pascal");l.add("C\\C++");l.add("VB");l.add("Java");frame.add(l);l.addItemListener(new ItemListener(){ public void itemStateChanged(ItemEvent e) { int[] a=l.getSelectedIndexs(); String[] b=l.getSelectedItems(); for(int i=0;i<a.length;i++) System.out.println(a|i|); for(int j=0;j<b.length;j++) System.out.println(b[j]);

}});Ph ngĐi p2410ươ ệDec 31 2007, 01:44 PMBài 11 - TextField và TextArea* TextFieldCó 4 ph ng th c kh i t oươ ứ ở ạTextField() không thêm gì cảTextField(String s) v i s là chu i ban đ u xu t hi n trênớ ỗ ầ ấ ệ TextField (ví d "Input your name here")ụTextField(int num) v i num là đ dài TextFieldớ ộTextField(String s,int num) v i s là chu i ban đ u xu t hi n trênớ ỗ ầ ấ ệ TextField và num là đ dài TextFieldộ* TextAreaCó 4 ph ng th c kh i t oươ ứ ở ạTextArea() không thêm gì cảTextArea(String s) v i s là chu i ban đ u xu t hi n trênớ ỗ ầ ấ ệ TextAreaTextArea(int row,int column) v i row và column là s hàng và c tớ ố ộ trên TextFieldTextField(String s,int row,int column) là đ y đ nh t k t h p 2ầ ủ ấ ế ợ ph ng th c kh i t o trênươ ứ ở ạ* Các ph ng th c c a TextField và TextAreaươ ứ ủĐ a n i dung văn b n vào b ng void setText(String txt)ư ộ ả ằL y n i dung văn b n ra b ng String getText()ấ ộ ả ằL y n i dung văn b n đang đ c đánh d u (bôi đen) ra b ngấ ộ ả ượ ấ ằ String getSelectedText()Đ ng i dùng không th thay đ i n i dung b ng voidể ườ ể ổ ộ ằ setEditable(false) (m c đ nh là true)ặ ịĐ c bi t là TextField có m t ph ng th c mà TextArea khôngặ ệ ộ ươ ứ có, đó là void setEchoChar(char c). Ví d setEchoChar('*') thìụ ph ng th c này s khi n cho t t c kí t nh p vào TextFieldươ ứ ẽ ế ấ ả ự ậ đ u ch hi n th là kí t '*' (r t h u d ng khi nh p password)ề ỉ ể ị ự ấ ữ ụ ậ* Ph ng th c dùng chung v i TextFieldươ ứ ớGi s n u b n mu n làm ra m t ch ng trình b ng tính, dả ử ế ạ ố ộ ươ ả ữ

li u nh p vào TextField, bây gi mu n chuy n d li u y ra sệ ậ ờ ố ể ữ ệ ấ ố th c đ tính toánự ểs=textField.getText();value1=Float.parseFloat(s);T ng t v iươ ự ớ Byte.parseByte,Integer.parseInt,Double.parseDouble,... Ph ngĐi p2410ươ ệDec 31 2007, 01:54 PMBài 12 - Scrollbar (thanh tr t)ượScrollbar đ c c p nh t theo 3 tình hu ng unit,block và absoluteượ ậ ậ ố- Khi ng i dùng click chu t vào mũi tên 2 đ u Scrollbar thìườ ộ ở ầ unit n y sinh, thanh tr t s t đ ng tr đi hay c ng thêm v tríả ượ ẽ ự ộ ừ ộ ị c a con tr t 1 đ n v (ta có th thay đ i giá tr này, m c đ nh làủ ượ ơ ị ể ổ ị ặ ị 1)- Khi ng i dùng click chu t vào kho ng gi a thanh tr t và vườ ộ ả ữ ượ ị trí hi n hành thì block n y sinh, con tr t s d ch chuy n m tệ ả ượ ẽ ị ể ộ kho ng là blockả- Khi ng i dùng n m vào v trí hi n t i c a con tr t và lôiườ ắ ị ệ ạ ủ ượ (drag) nó t v trí này sang v trí khác, absolute n y sinhừ ị ị ả* Kh i t o thanh tr tở ạ ượScrollbar() là đ n gi n nh t, m c đ nh là thanh tr t đ ngơ ả ấ ặ ị ượ ứScrollbar(int orientation) v i orientation làớ Scrollbar.HORIZONTAL (ngang) hay Scrollbar.VERTICAL (đ ng)ứScrollbar(int orientation,int position,int block,int min,int max) là đ y đ nh t, ví dầ ủ ấ ụ Scrollbar(Scrollbar.HORIZONTAL,50,15,0,100) t c là thanhứ tr t ngang, ph m vi t 0 đ n 100, v trí ban đ u c a con tr tượ ạ ừ ế ị ầ ủ ượ là 50 (gi a thanh) khi tình thu ng block x y ra thì con tr t diữ ố ả ượ chuy n 15ể* Các ph ng th c c a thanh tr tươ ứ ủ ượĐ thay đ i giá tr unit (m c đ nh là 1) ta dùngể ổ ị ặ ị setUnitIncrement(int unit) v i unit m iớ ớĐ thay đ i giá tr block ta dùng setBlockIncrement(int block) v iể ổ ị ớ block m iớ

Đ bi t v trí hi n hành c a con tr t ta dùng int getValue()ể ế ị ệ ủ ượ* Vi t b nghe và hành đ ng cho thanh tr tế ộ ộ ượĐ x lí tình hu ng c a Scrollbar khi nó thay đ i tr ng thái, taể ử ố ủ ổ ạ ph i cho nó implements giao di n AdjustmentListener, và bênả ệ trong nó có ph ng th cươ ứ adjustmentValueChanged(AdjustmentEvent e). Còn đ Scrollbarể th c hi n nh ng hành đ ng c a l p y thì ta ph i dùng ph ngự ệ ữ ộ ủ ớ ấ ả ươ th c addAdjustmentListener.ứTuy v y, m t thanh tr t thì m i khi tác đ ng đ n nó, nó ph iậ ộ ượ ỗ ộ ế ả "cu n" m t cái gì đ y. Mu n AdjustmentListener đáp ng m iộ ộ ấ ố ứ ỗ khi ta "cu n" thì c n AdjustmentEvent e bi t đ c v trí conộ ầ ế ượ ị tr t đang đâu, ta dùng e.getValue(). Ví d sau là thanh tr tượ ở ụ ượ và TextField

CODEimport javax.swing.JFrame;import java.awt.*;import java.awt.event.*;class Core{ public static void main(String args[]) { JFrame frame = new JFrame("My frame"); Panel p=new Panel(); frame.add(p); Scrollbar s=new Scrollbar(Scrollbar.HORIZONTAL,0,10,0,100); p.add(s); final TextField t=new TextField(100); t.setEditable(false); p.add(t); s.addAdjustmentListener(new AdjustmentListener() { public void

adjustmentValueChanged(AdjustmentEvent e) { int currentPos=e.getValue(); String text=""; for(int i=0;i<currentPos;i++) text+='*'; t.setText(text); } }); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.pack(); frame.setVisible(true); }}

Bây gi thì m i l n b n kéo con tr t thì kí t '*' l y thay đ iờ ỗ ầ ạ ượ ự ạ ổ trong TextField t. Ph ngĐi p2410ươ ệDec 31 2007, 02:00 PMBài 13 - Các đ i t ng khung ch a (container) và b qu n líố ượ ứ ộ ả trình bày (layout manager)Khung ch a nói nôm na là nh ng cái khung tranh b n c n đ dánứ ữ ạ ầ ể nh ng nét v (đ i t ng đ h a) c a b n lên đó. Và đ s p x pữ ẽ ố ượ ồ ọ ủ ạ ể ắ ế các đ i t ng này trên khung ch a thì ca c n t i b qu n lí trìnhố ượ ứ ầ ớ ộ ả bày.- Khung ch a mà b n đã quen thu c là Frame. Nó gi ng nh c aứ ạ ộ ố ư ử s c a Windows và ch a toàn b ng d ng c a b nổ ủ ứ ộ ứ ụ ủ ạ- M t khung ch a khác mà b n đã bi t qua là Panel. Nó gi ngộ ứ ạ ế ố nh m t cái b ng hi n thi đ y đ các thành ph n GUI mà b nư ộ ả ể ầ ủ ầ ạ mu n t ng lên Frameố ố- Nh ng cái còn l i s h c sau. T t c các l p Frame,Panel,...ữ ạ ẽ ọ ấ ả ớ đ u là con c a l p Containerề ủ ớ* Các ph ng th c c a Container (các ph ng th c chungươ ứ ủ ươ ứ c a các đ i t ng khung ch a)ủ ố ượ ứComponent add(Component c) đ a m t đ i t ng c vào khungư ộ ố ượ

ch a. Ví d frame.add(panel);ứ ụvoid remove(Component c) đ a m t đ i t ng c ra kh i khungư ộ ố ượ ỏ ch a. Ví d frame.remove(panel); ứ ụPh ngĐi p2410ươ ệDec 31 2007, 02:15 PMBài 14 - Nh c l i v JFrameắ ạ ềPh n 1 đã nói v JFrame, bây gi ch nh c l iầ ề ờ ỉ ắ ạ

CODEimport javax.swing.JFrame;import java.awt.*;import java.awt.event.*;class Core{ public static void main(String args[]) { //frame khong phu thuoc do phan giai man hinh Toolkit kit = Toolkit.getDefaultToolkit(); Dimension screenSize = kit.getScreenSize(); int screenWidth = screenSize.width; int screenHeight = screenSize.height; int frameWidth = 200; int frameHeight = 60; JFrame frame = new JFrame("My frame"); frame.setLayout(null); frame.setLocation((screenWidth-frameWidth)/2,(screenHeight-frameHeight)/2); frame.setSize(frameWidth,frameHeight); frame.setResizable(false); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//tao Button Exit cai dat phuong thuc hanh dong qua class rieng

Button b1 = new Button("Exit"); b1.setBounds(0,0,100,25); frame.add(b1); EventQuit eventQuit=new EventQuit(); b1.addActionListener(eventQuit);

//tao Button About cai dat phuong thuc hanh dong truc tiep final Button b2 = new Button("About"); b2.setBounds(100,0,100,25); frame.add(b2); b2.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if(e.getSource()==b2) System.out.println("Made in Vietnam"); } }); frame.setVisible(true); }}class EventQuit implements ActionListener{ public void actionPerformed(ActionEvent e) { System.exit(0); }}

Bài trên đã dùng l i các ki n th c đã h c tr c đây:ạ ế ứ ọ ướ setLayout(null) và setBounds, đ t ng d ng gi a màn hình vàặ ứ ụ ữ không ph thu c phân gi i màn hình nh dùng Toolkit, 2 cách càiụ ộ ả ờ đ t ph ng th c hành đ ng qua class riêng và cài đ t tr c ti p. ặ ươ ứ ộ ặ ự ếPh ngĐi p2410ươ ệ

Dec 31 2007, 02:18 PMBài 15 - T o và add hàng lo t buttonạ ạB n hãy c t ng t ng n u b n ph i add kho ng 30 buttonạ ứ ưở ượ ế ạ ả ả vào Frame c a mình, b n ph i vi t kho ng 30 câu l nh kh i t o,ủ ạ ả ế ả ệ ở ạ add r t là m t. Hãy đ máy t đ ng làm cho b n, ch v i vàiấ ệ ể ự ộ ạ ỉ ớ vòng l p. B n c n dùng m t b ng String đ l u nh ng label c aặ ạ ầ ộ ả ể ư ữ ủ button và m t m ng Button đ l u chính nh ng button. Đ ngộ ả ể ư ữ ồ th i cũng d a vào m ng Button đ y đ cài đ t ph ng th cờ ự ả ấ ể ặ ươ ứ hành đ ngộ

CODEimport javax.swing.JFrame;import java.awt.*;import java.awt.event.*;class Core extends JFrame implements ActionListener{ Panel p=new Panel(); final String[] a={"File","Edit","View","Insert","Format","Table","Windows","Help"}; final Button[] b=new Button[a.length]; public Core(String title) { setTitle(title); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); add(p); setSize(500,60); for(int i=0;i<a.length;i++) { b|i|=new Button(a|i|); p.add(b|i|); b|i|.addActionListener(this); } setVisible(true);

} public void actionPerformed(ActionEvent e) { for(int i=0;i<a.length;i++) if(e.getSource()==b|i|) System.out.println("You have clicked button "+a|i|); } public static void main(String args[]) { Core c=new Core("My frame"); }}

S dĩ trong bài này ta dùng kh i t o c a Core là đ s d ngở ở ạ ủ ể ử ụ addActionListener(this); Ph ngĐi p2410ươ ệDec 31 2007, 02:24 PMBài 16 - MenuBar,Menu và MenuItem* MenuBar và MenuĐ th y đ c các Menu nh File, Edit, Help nh trên m t c aể ấ ượ ư ư ộ ử s Windows thông th ng thì t t c các đ i t ng Menu y ph iổ ườ ấ ả ố ượ ấ ả đ c add vào m t MenuBar. Đ Menubar có th xúât hi n trongượ ộ ể ể ệ JFrame thì ta dùng ph ng th c setMenuBar(menuBar). Ch ngươ ứ ươ trình sau minh h a m t ng d ng nh v yọ ộ ứ ụ ư ậ

CODEimport javax.swing.JFrame;import java.awt.*;class Core{ public static void main(String args[]) {

JFrame f = new JFrame("My frame"); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); MenuBar menuBar=new MenuBar(); f.setMenuBar(menuBar); Menu file=new Menu("File"); menuBar.add(file); Menu edit=new Menu("Edit"); menuBar.add(edit); Menu help=new Menu("Help"); menuBar.setHelpMenu(help); //phan code duoi them vao day f.setSize(200,60); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setVisible(true); }}

* Menu và MenuItemCòn đ New, Open, Save hi n ra trong menu File thì cácể ệ MenuItem y ph i đ c add vào menu File. Ta thêm vào nh sauấ ả ượ ưMenuItem newItem=new MenuItem("New");file.add(newItem);MenuItem openItem=new MenuItem("Open");file.add(openItem);MenuItem saveItem=new MenuItem("Save");file.add(saveItem);saveItem.setEnable(false);//phan code duoi them vao dayfile.addSeparator(); //phuong thuc nay dua mot hang phan cach vao menu FileMenuItem exitItem=new MenuItem("Exit");file.add(exitItem);Đ cho m t MenuItem không th ch n đ c, ta dùng ph ngể ộ ể ọ ượ ươ th c setEnable(false) (m c đ nh là true) ví d nh trênứ ặ ị ụ ư

saveItem.setEnable(false); Đi u này đ c bi t h u ích v i ngề ặ ệ ữ ớ ứ d ng văn b n ch a có ch nào thì không nên cho ng i dùngụ ả ư ữ ườ ch n MenuItem saveItemọ* Menu và submenuĐ t o m t MenuItem ch a m t Menu khác (submenu), ta chể ạ ộ ứ ộ ỉ vi c t o Menu đó r i add vào menu item kia là xong. Ta thêm vàoệ ạ ồ nh sauưMenu print=new Menu("Setup Print");file.add(print);MenuItem previewItem=new MenuItem("Preview");print.add(previewItem);MenuItem printItem=new MenuItem("Print");print.add(printItem);//phan code duoi them vao day* CheckboxMenuItemB n cũng có th t o m t m c ch n có kh năng đánh d u b ngạ ể ạ ộ ụ ọ ả ấ ằ cách s d ng l p CheckboxMenuItemử ụ ớCheckboxMenuItem autosave=new CheckboxMenuItem("Auto Save");file.add(autosave);Ngoài ra còn m t ph ng th c kh i t o khác làộ ươ ứ ở ạ CheckboxMenuItem autosave=new CheckboxMenuItem("Auto Save",true); M c đ nh là false (ch a ch n) ặ ị ư ọPh ngĐi p2410ươ ệDec 31 2007, 02:32 PMBài 17 - Kh i t o và cài đ t ph ng th c hành đ ng hàngở ạ ặ ươ ứ ộ lo tạB n hãy c t ng t ng n u b n ph i làm m t ng d ng gi ngạ ứ ưở ượ ế ạ ả ộ ứ ụ ố nh Microsoft Word (ch m i nói Word thôi ch ch a dám đ ngư ỉ ớ ứ ư ụ t i Photoshop, Corel gì c ) v i m t lô Menu và m i Menu có h nớ ả ớ ộ ỗ ơ ch c cái MenuItem. V y thì b n ph i kh i t o, ph i add r t làụ ậ ạ ả ở ạ ả ấ m t. Hãy đ máy t đ ng làm cho b n, ch v i vài vòng l p.ệ ể ự ộ ạ ỉ ớ ặ B n c n dùng m t b ng String đ l u nh ng label c a menu vàạ ầ ộ ả ể ư ữ ủ m t m ng Menu đ l u chính nh ng menu.ộ ả ể ư ữ

CODEimport javax.swing.JFrame;import java.awt.*;import java.awt.event.*;class Core{ public static void main(String args[]) { JFrame f = new JFrame("My frame"); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); MenuBar menuBar=new MenuBar(); f.setMenuBar(menuBar); final String[] menuLabel={"File","Edit","View","Insert","Format","Table","Windows","Help"}; final Menu[] menu=new Menu[menuLabel.length]; for(int i=0;i<menuLabel.length;i++) { menu|i|=new Menu(menuLabel|i|); menuBar.add(menu|i|); } final String[] fileMenuItemLabel={"New","Open","Save","Exit"}; final MenuItem[] fileMenuItem=new MenuItem[fileMenuItemLabel.length]; for(int i=0;i<fileMenuItemLabel.length;i++) { fileMenuItem|i|=new MenuItem(fileMenuItemLabel|i|); menu[0].add(fileMenuItem|i|); if(i==2) menu[0].addSeparator(); } fileMenuItem[3].addActionListener(new

ActionListener() { public void actionPerformed(ActionEvent e) { System.exit(0); } }); f.setSize(400,60); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setVisible(true); }}Ph ngĐi p2410ươ ệDec 31 2007, 02:38 PMBài 18 - ScrollPane

CODEimport javax.swing.JFrame;import java.awt.*;class Core{ public static void main(String args[]) { JFrame f = new JFrame("My frame"); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); ScrollPane s=new ScrollPane(); TextArea t=new TextArea(); s.add(t); f.add(s); f.setSize(200,120); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setVisible(true); }}

Ph ngĐi p2410ươ ệDec 31 2007, 02:43 PMBài 19 - LookAndFeel (c m quan giao di n)ả ệLookAndFeel (vi t t t là LaF g i là c m quan giao di n cho ngế ắ ọ ả ệ ứ d ng. S d ng r t đ n gi nụ ử ụ ấ ơ ảUIManager.setLookAndFeel(String className) v i UIManager làớ m t class còn className là tên class ch a cái LaF đó. Java h trộ ứ ỗ ợ s n 3 cái là:ẵjavax.swing.plaf.metal.MetalLookAndFeel (giao di n Java)ệcom.sun.java.swing.plaf.windows.WindowsLookAndFeel (giao di n Windows)ệcom.sun.java.swing.plaf.motif.MotifLookAndFeel (giao di nệ UNIX)Sau khi set, đ giao di n hi n th trên JFrame nào, c n c p nh tể ệ ể ị ầ ậ ậ trên JFrame đó b ng ph ng th c sauằ ươ ứSwingUtilities.updateComponentTreeUI(myFrame) (myFrame là tên JFrame c n c p nh t)ầ ậ ậVí d sau s minh h a cách thay đ i LaF d a vàoụ ẽ ọ ổ ự CheckboxGroup. C n nói thêm là ph ng th cầ ươ ứ UIManager.setLookAndFeel(String className) b t bu c ph i xắ ộ ả ử lí ngo i lạ ệ

CODEimport javax.swing.*;import java.awt.*;import java.awt.event.*;class Core{ public static void main(String args[]) { final JFrame f = new JFrame("My JFrame"); final String[] a={"Metal","Windows","Motif"}; final Checkbox[] b=new Checkbox[a.length]; final String[] c=new String[a.length];

CheckboxGroup g=new CheckboxGroup(); c[0]="javax.swing.plaf.metal.MetalLookAndFeel"; c[1]="com.sun.java.swing.plaf.windows.WindowsLookAndFeel"; c[2]="com.sun.java.swing.plaf.motif.MotifLookAndFeel"; Panel p=new Panel(); f.add(p); for(int i=0;i<a.length;i++) { b[i]=new Checkbox(a[i],g,false); p.add(b[i]); b[i].addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { for(int j=0;j<a.length;j++) { if(e.getSource()==b[j]) { try { UIManager.setLookAndFeel(c[j]); } catch(Exception exception) { System.out.println("LaF not found"); } SwingUtilities.updateComponentTreeUI(f); } } }

}); } f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setVisible(true); }}Ph ngĐi p2410ươ ệDec 31 2007, 02:45 PMBài 20 - Cách s d ng LaF c a hãng th 3:ử ụ ủ ứCách 1: coi nó nh là 1 add-in plugin, t c là đ a cái file .jar ch aư ứ ư ứ class mình c n vào th m c jdk1.5.0\jre\lib\ext r i c th đi uầ ư ụ ồ ứ ế ề ch nh className cho phù h pỉ ợCách 2: gi i nén file .jar ra và t ng th ng nó vào góiả ố ẳ jdk1.5.0\jre\lib\rt.jarVí d : b n DOWN đ c gói xplookandfeel.jar và chép nó theoụ ạ ượ cách 1B n hãy m file readme c a gói này ra và tìm th y classNameạ ở ủ ấ c a nó là "com.stefankrause.xplookandfeel.XPLookAndFeel" thìủ đ a thêm nó vàoư* LaF có b n quy n ( đây l y ví d là Alloy-có c mã)ả ề ở ấ ụ ảĐ s d ng LaF có b n quy n b n setProperty cho nó, ví d làể ử ụ ả ề ạ ụ dùng AlloyLaF (className là "com.incors.plaf.alloy.AlloyLookAndFeel")

CODEimport javax.swing.*;import java.awt.*;import java.awt.event.*;class Core{ public static void main(String args[]) { com.incors.plaf.alloy.AlloyLookAndFeel.setProperty("alloy.licenseCode","v#ej_technologies#uwbjzx#e6pck8");

final JFrame f = new JFrame("My f"); final String[] a={"Metal","Windows","Motif","XP","Alloy"}; final Checkbox[] b=new Checkbox[a.length]; final String[] c=new String[a.length]; CheckboxGroup g=new CheckboxGroup(); c[0]="javax.swing.plaf.metal.MetalLookAndFeel"; c[1]="com.sun.java.swing.plaf.windows.WindowsLookAndFeel"; c[2]="com.sun.java.swing.plaf.motif.MotifLookAndFeel"; c[3]="com.stefankrause.xplookandfeel.XPLookAndFeel"; c[4]="com.incors.plaf.alloy.AlloyLookAndFeel"; Panel p=new Panel(); f.add(p); for(int i=0;i<a.length;i++) { b[i]=new Checkbox(a[i],g,false); p.add(b[i]); b[i].addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { for(int j=0;j<a.length;j++) { if(e.getSource()==b[j]) { try { UIManager.setLookAndFeel(c[j]); } catch(Exception exception) {

System.out.println("LaF not found"); } SwingUtilities.updateComponentTreeUI(f); } } } }); } f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setVisible(true); }}Ph ngĐi p2410ươ ệDec 31 2007, 02:47 PMBài 21 - JCheckbox* JCheckBox t ng t Checkboxươ ự

CODEimport javax.swing.*;import java.awt.*;import java.awt.event.*;class Core{ public static void main(String args[]) { JFrame frame = new JFrame("My frame"); JCheckBox checkbox=new JCheckBox("Documents",false); checkbox.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { System.out.println("Changed");

} }); frame.add(checkbox); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); }}Ph ngĐi p2410ươ ệDec 31 2007, 02:50 PMBài 22 - JRadioButton và ButtonGroup* JRadioButton và ButtonGroup t ng t Checkbox vàươ ự CheckboxGroup

CODEimport javax.swing.*;import java.awt.*;import java.awt.event.*;class Core{ public static void main(String args[]) { com.incors.plaf.alloy.AlloyLookAndFeel.setProperty("alloy.licenseCode","v#ej_technologies#uwbjzx#e6pck8"); final JFrame f = new JFrame("My f"); final String[] a={"Metal","Windows","Motif","XP","Alloy"}; final JRadioButton[] b=new JRadioButton[a.length]; final String[] c=new String[a.length]; c[0]="javax.swing.plaf.metal.MetalLookAndFeel"; c[1]="com.sun.java.swing.plaf.windows.WindowsLookAndFeel"; c[2]="com.sun.java.swing.plaf.motif.MotifLookAndFeel"; c[3]="com.stefankrause.xplookandfeel.XPLookAndFeel

"; c[4]="com.incors.plaf.alloy.AlloyLookAndFeel"; ButtonGroup g=new ButtonGroup(); JPanel p=new JPanel(); f.add(p); for(int i=0;i<a.length;i++) { b|i|=new JRadioButton(a|i|); g.add(b|i|); p.add(b|i|); b|i|.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { for(int j=0;j<a.length;j++) { if(e.getSource()==b[j]) { try { UIManager.setLookAndFeel(c[j]); } catch(Exception exception) { System.out.println("LaF not found"); } SwingUtilities.updateComponentTreeUI(f); } } } }); }

f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setVisible(true); }}Ph ngĐi p2410ươ ệDec 31 2007, 02:51 PMBài 23 - JComboBox và JList* JComboBox t ng t nh Choiceươ ự ư

CODEimport javax.swing.*;import java.awt.*;class Core{ public static void main(String args[]) { JFrame f = new JFrame("My frame"); String[] label={"ASM","C\\C++","VB","Java"}; JComboBox box=new JComboBox(label); f.add(box); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setSize(100,55); f.setVisible(true); }}

* JList t ng t List nh ng nó l i không t kéo th đ cươ ự ư ạ ự ả ượ nh List, c n có s h tr c a JScrollPaneư ầ ự ỗ ợ ủ

CODEimport javax.swing.*;import java.awt.*;class Core

{ public static void main(String args[]) { JFrame f = new JFrame("My frame"); String[] label={"ASM","Pascal","C\\C++","VB","Java"}; JList l=new JList(label); ScrollPane s=new ScrollPane(); s.add(l); f.add(s); f.setSize(100,100); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setVisible(true); }}

* Còn l i thì JMenuBar,JMenu,JMenuItem t ng tạ ươ ự MenuBar,Menu,MenuItem Ph ngĐi p2410ươ ệDec 31 2007, 02:52 PMBài 24 - JTabbedPaneĐây g i là đ i t ng phân trang. Ví d d i đây minh h a 1ọ ố ượ ụ ướ ọ trong các ph ng th c addTab là JTabbedPane.addTab(Stringươ ứ title,Component component) Các component trong ví d đ u làụ ề các JButton

CODEimport javax.swing.*;import java.awt.*;class Core{ public static void main(String args[]) {

JFrame f = new JFrame("My frame"); String[] label={"ASM","Pascal","C\\C++","VB","Java"}; JButton[] b=new JButton[label.length]; JTabbedPane p=new JTabbedPane(); for(int i=0;i<label.length;i++) { b|i|=new JButton(label|i|); p.addTab(label|i|,b|i|); } f.add(p); f.setSize(300,100); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setVisible(true); }}vanvietlocJan 18 2008, 10:13 AMChào b n mình mu n h i b n cách l p 1 b ng nh th nàyạ ố ỏ ạ ậ ả ư ế nh ng b l i khi chèn các checkbox và listư ị ỗ

B n có th h ng d n cách làm c th h n đ c kô? ạ ể ướ ẫ ụ ể ơ ượPh ngĐi p2410ươ ệJan 18 2008, 10:40 AMQUOTEChào b n mình mu n h i b n cách l p 1 b ng nh th nàyạ ố ỏ ạ ậ ả ư ế nh ng b l i khi chèn các checkbox và listư ị ỗ

B n cho mình code thì mình m i s a đ c ch hay ít gì b nạ ớ ử ượ ứ ạ cũng cho mình xem cái l i c a b n đã ... hay là b n làm cho cáiỗ ủ ạ ạ danh sách c a b n ch có th ch n 1 ? trên mình th y b n làmủ ạ ỉ ể ọ Ở ấ ạ đ c cái danh dách mà có nhi u tùy ch n mà ?ượ ề ọ

Còn code trong này thì có 1 s bài đúng là sai ? vì mình l y tở ố ấ ừ javavietnam.org mà mình ch a có th i gian s a l i h t >_< ... cóư ờ ử ạ ế 1 topic mình đ c di n t đ u đ n cu i c g n trăm bài thì cũngộ ễ ừ ầ ế ố ả ầ không sai 1 dòng code nào c nh ng c a ng i ta mình nhác s aả ư ủ ườ ử thôi v i l i mình đang b n làm thêm bên C# ... B n cho mìnhớ ạ ậ ạ xem code chúng ta cùng th o lu n th ...ả ậ ửB n làm đ p đó ch ... h n mình rùi ạ ẹ ứ ơThân! vanvietlocJan 18 2008, 11:34 AMth t ra mình có t o cái này đâu, đang làm mà ch a xong, m iậ ạ ư ớ m y cái checkbox và button à, còn ph i làm nhi u n a khi nàoấ ả ề ữ làm xong đ a lên cho các b n tham kh o nghe ư ạ ả

CODEimport javax.swing.JFrame;import java.awt.*;import javax.swing.*;

class SimpleGui1 { public static void main(String args[]) { JPanel pane = new JPanel(new FlowLayout());pane.setLayout(new GridLayout(0, 1)); Checkbox check=new Checkbox("chon 1 "); pane.add(check); Checkbox check2=new Checkbox("chon 2 "); pane.add(check2); Checkbox check3=new Checkbox("chon 3 "); pane.add(check3); Checkbox check4=new Checkbox("chon 4 "); pane.add(check4); Checkbox check5=new Checkbox("chon 5 "); pane.add(check5);

Label label=new Label("Hay chon2 :"); Choice choice=new Choice(); pane.add(label); pane.add(choice); choice.add("HA NOI"); choice.add("HUE"); choice.add("HO CHI MINH");

JButton bt1 = new JButton("OK!"); pane.add(bt1);

JButton bt2 = new JButton("CancelS"); pane.add(bt2);

JFrame fr = new JFrame(); fr.setContentPane(pane); fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); fr.setLocation(200, 200); fr.pack(); fr.setVisible(true); }}iamvtnApr 18 2008, 01:19 PMBài 25 - JToolBarJToolBar (thanh công c ) gi ng y nh b n th ng th y trong cácụ ố ư ạ ườ ấ

ng d ng Windows. Nó bao g m nhi u JButton, m i JButton cóứ ụ ồ ề ỗ m t Icon riêng. Tr c h t hãy chu n b vài hình .gif 24x24 cho víộ ướ ế ẩ ị d này. N u không tìm th y thì chép t jdk1.5.0\demo\plugin\jfc\ụ ế ấ ừStylepad\resources. Chép vào th m c ch a mã ngu nư ụ ứ ồ

CODE

import javax.swing.*;import java.awt.*;class Core{ public static void main(String args[]) { JFrame f = new JFrame("My frame"); JToolBar t=new JToolBar(); String[] label={"New","Open","Save","Cut","Copy","Paste","Bold","Italic","Underline","Left","Right","Center"}; String[] file={"new.gif","open.gif","save.gif","cut.gif","copy.gif","paste.gif","bold.gif","italic.gif","underline.gif","left.gif","right.gif","center.gif"}; ImageIcon[] icon=new ImageIcon[label.length]; JButton[] b=new JButton[label.length]; for(int i=0;i<label.length;i++) { icon|i|=new ImageIcon(file|i|); b|i|=new JButton(icon|i|); b|i|.setToolTipText(label|i|); t.add(b|i|); if((i==2)||(i==5)||(i==8)) t.addSeparator(); } f.add(t); f.setSize(600,70); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setVisible(true); }}

iamvtnApr 18 2008, 01:20 PM

Bài 26 - JTable* JTable hi n th d li u có s nể ị ữ ệ ẵ

CODEimport javax.swing.*;import java.awt.*;class Core{ public static void main(String args[]) { JFrame f = new JFrame("My frame"); String[][] dat={{"1","JCreator","Xinox","Beginer"}, {"2","jGRASP","Auburn","Medium"}, {"3","NetBeans","Sun Microsystems","Expert"}, {"4","Gel","GExperts","Beginer"}, {"5","Eclipse","Eclipse","Expert"}, {"6","JBuilder","Borland","Expert"}}; String[] columnName={"ID","Name","Company","Rank"}; JTable t=new JTable(dat,columnName); JScrollPane s=new JScrollPane(t); f.add(s); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setSize(400,100); f.setVisible(true); }}* Thao tác tr c ti p d li u trong t ng ô c a b ngự ế ữ ệ ừ ủ ảTrong ví d d i chúng ta s thay đ i d li u c a c t "Rank"ụ ướ ẽ ổ ữ ệ ủ ộ b ng m t JComboBox, s d ng class TableColumnằ ộ ử ụ

CODEimport javax.swing.*;import java.awt.*;import javax.swing.table.*;class Core

{ public static void main(String args[]) { JFrame f = new JFrame("My frame"); String[][] dat={{"1","JCreator","Xinox","Beginer"}, {"2","jGRASP","Auburn","Medium"}, {"3","NetBeans","Sun Microsystems","Expert"}, {"4","Gel","GExperts","Beginer"}, {"5","Eclipse","Eclipse","Expert"}, {"6","JBuilder","Borland","Expert"}}; String[] columnName={"ID","Name","Company","Rank"}; JTable t=new JTable(dat,columnName); JScrollPane s=new JScrollPane(t); f.add(s); JComboBox c=new JComboBox(new String[]{"Low","High","Extremely"}); TableColumn rankColumn=t.getColumn("Rank"); rankColumn.setCellEditor(new DefaultCellEditor(c)); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setSize(400,100); f.setVisible(true); }}iamvtnApr 18 2008, 01:22 PMBài 27 - JOptionPane c b nơ ảĐây có th nói là công c Dialog m nh nh tể ụ ạ ấTr c tiên hãy xem qua ví d sauướ ụ

CODEimport javax.swing.*;class Core{ public static void main(String args[]) {

JFrame f = new JFrame("My frame"); JOptionPane.showMessageDialog(f,"Hien thi cau thong bao","Hien thi tieu de",JOptionPane.ERROR_MESSAGE); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setVisible(true); }}

JOptionPane bao g m các thành ph n chính sau đây: Title, Icon,ồ ầ Message, InputValue và OptionButtons. Không c n bao g m đầ ồ ủ t t cấ ả* Kh i t o c a JOptionPaneở ạ ủJOptionPane(Object message, int messageType, int optionType, Icon icon, Object[] options)B n có th thíêu b t c thành ph n nào th m chí có th thi uạ ể ấ ứ ầ ậ ể ế h tếObject message: câu thông báo hi n th trên JOptionpaneể ịint messageType: bao g m ERROR_MESSAGE,ồ INFORMATION_MESSAGE, WARNING_MESSAGE, QUESTION_MESSAGE, và PLAIN_MESSAGEint optionType: bao g m DEFAULT_OPTION,ồ YES_NO_OPTION, YES_NO_CANCEL_OPTION, OK_CANCEL_OPTIONIcon icon: hình icon c a JOptionPaneủVí d :ụ

CODEimport javax.swing.*;class Core{ public static void main(String args[]) { JFrame f = new JFrame("My frame"); f.add(new JOptionPane("Hien thi cau thong bao", JOptionPane.QUESTION_MESSAGE,

JOptionPane.YES_NO_CANCEL_OPTION)); f.setSize(250,150); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setVisible(true); }}

* Các ph ng th c (hay s d ng h n)ươ ứ ử ụ ơvoid showMessageDialog(Component parentComponent, Object message, String title, int messageType)String showInputDialog(Component parentComponent, Object message, String title, int messageType)int showConfirmDialog(Component parentComponent, Object message, String title, int optionType, int messageType) Yes tr vả ề 0 và No tr v 1ả ề

Post lên cho nó đ 27 bài so v i b n g c.ủ ớ ả ố Đây là phiên b n "lo-fi" c a trang chính. Hãy xem phiên b n đ yả ủ ả ầ đ v i nhi u thông tin, đ nh d ng và hình nh.ủ ớ ề ị ạ ả click vào đây.Invision Power Board © 2001-2010 Invision Power Services, Inc.Java th c hành, v i nh ng ví d c b n nh t.ự ớ ữ ụ ơ ả ấ H c Java thông qua th c hành.ọ ựLúc tr c khi tôi b t đ u h c java, tôi có h i m t s anh ch v java, và ph ng phápướ ắ ầ ọ ỏ ộ ố ị ề ươ h c. Và các anh ch nói r ng h c java là chu i đó. Tuy nhiên n u em h c nhi u thì emọ ị ằ ọ ố ế ọ ề s th y hay. Và các anh ch có khuyên tôi, nên h c t nh ng bài c b n nh t.ẽ ấ ị ọ ừ ữ ơ ả ấVà tôi b t đ u v i java t nh ng ví d d i đây.ắ ầ ớ ừ ữ ụ ướPh n 1: Các bài th c hành v i toán tầ ự ớ ửBài 1:Trích:

class Bai1{public static void main(String args[]){int i=1;int j=6;int k;System.out.println("i is"+i);System.out.println("j is"+j);k=i+j;

System.out.println("i+j ="+k);k=i-j;System.out.println("i-j="+k);k=i*j;System.out.println("i*j="+k);k=i/j;System.out.println("i/j="+k);}}

Bài s 2:ốTrích:

class Bai2{public static void main(String args[]){

double x=7.5;double y=6.9;double k;System.out.println("x is"+x);System.out.println("y is"+y);k=x+y;System.out.println("x+y is"+k);k=x-y;System.out.println("x-y is"+k);}}

Bài s 3:ốTrích:

class Bai3{public static void main(String args[]){int i=10;int j=2;int k;System.out.println("i is"+i);System.out.println("j is"+j);k=i/j;System.out.println("i/j is="+k);k=i*j;System.out.println("i*j is="+k);}}

Bài s 4:ốTrích:

class Bai4{public static void main(String args[]){double mass=9.109E-25; //hang so khoi luong nguyen tudouble c=2.988E8; //hang so c,van toc anh sangdouble E=mass*c*c;System.out.println(E);}}

Bài s 5ốTrích:

class Bai6{//Farhernheit-->Celcius. Program use 4.7public static void main(String args[]){double farh,celcius;double lower,upper,step;lower=0.0; //lower limit of temperature tableupper=300.0; //upper limit of temperature tablestep=20.0; //step size;farh=lower;while(farh<upper){celcius=(5.0/9.0)*(farh-30);System.out.println(farh+" "+celcius);farh=farh+step;}

}

}

Đ c thêm ọ http://congdongjava.com/showthread.php?t=94#ixzz11A9xihd1

Bài s 6ốTrích:

class Bai6{public static void main(String arg[])

{int i=10; //kieu du lieu cua i dang interger.double x=2.5; //bien x dang doubledouble k; //kieu du lieu cua k cung la double. vi interger+double=doubleSystem.out.println("i is"+i);System.out.println("x is"+x);k=i+x;System.out.println("i+x is"+k);k=i-x;System.out.println("i-x is"+k);k=i*x;System.out.println("i*xis"+k);k=i/x;System.out.println("i/xis"+k);k=i%x;System.out.println("i%x is"+k);}}

Bài s 7ốTrích:

class Bai7{public static void main(String args[]){double mass;double c = 2.998E8; double k;mass=Double.valueOf(args[0]).doubleValue();k=mass *c *c;System.out.println("Jauler"+k);}}

Bài s 8ốTrích:

class mc2 {public static void main (String args[]) {

double mass;double c = 2.998E8; // meters/seconddouble E;

mass = Double.valueOf(args[0]).doubleValue(); E = mass * c * c;System.out.println(E + " Joules");

}}

Bài s 9ốTrích:

class Bai9{public static void main(String args[]){String s1="Doan van thong";String s2="doan van thong";if(s1==s2)System.out.println("The Strings are the same");else if(s1!=s2)System.out.println("The Strings are diffirent");if(s1.equals(s2)){System.out.println("The string are the same");}else{System.out.println("The string are the diffirents");}String s3="Hello word";String s4=new String("Hello word");if(s3==s4) //so sanh hai doi tuong chuoi khac nhau. sai System.out.println("The strings are the same");elseSystem.out.println("The strings are the diffirent");if(s3.equals(s4)) //dung phuong thuc equals(), de so sanh.System.out.println("The strings are the same");String s5=new String("Hello word");if(s3==s5)System.out.println("The strings are the same");elseSystem.out.println("The strings are the diffirent");if(s3.equals(s5)) //chi dung phuong thuc equals() de so sanh hai chuoi..System.out.println("The strings are the same");}}

Bài s 10ốTrích:

class Bai10{public static void main(String args[])

{System.out.println("Hello");for(int i=0;i<args.length;i++){System.out.println(args[i]);System.out.println(" ");}System.out.println();}}

Bài s 11ốTrích:

class Bai11{public static void main(String args[]){System.out.println("Hello Every body");for(int i=1;i<=10;i++){System.out.println(i);}System.out.println("All done!");}}

Bài s 12ốTrích:

class Bai12{public static void main(String args[]){for(int i=1;i<=10;i--)System.out.println(i);System.out.println("All done");}}

Bài s 13”ốTrích:

class Bai16{public static void main(String args[]){int i=1;do{

System.out.println(i);i=i+1;}while(i<=10); //for loop the ends when i biggen than ten.}}

Bài s 14ốTrích:

class Bai14{public static void main(String args[]){int i,j,k;j=1;k=0;for(i=1;i<=60;i++){k+=j;j*=2;System.out.print(k+"\t");if(i%4==0)System.out.println();}System.out.println("All done");}}

Bài s 15ốTrích:

class Bai20{public static void main(String args[]){int i;double j,k;j=1.0;k=0.0;for(i=1;i<=100;i++){k+=j;System.out.print(k+"\t");if(i%4==0){

System.out.println();

j*=2.0;}}System.out.println("Alldone");}}

Đ c thêm ọ http://congdongjava.com/showthread.php?t=94#ixzz11AAGJBVW