Đặc điểm riêng của đối tượng ô văn bản TextField 197 13.. Các đặc điểm chung của đối tượng khung chứa Container 210 18... Tạo ảnh từ vùng nhớ với đối tượng MemorylmageSource 324 3.5.. Ch
Trang 11 SÁCH KÈM THEO ĐĨA CD
TẠI PHÒNG NGHE NHÌN
# N g ô n n g ữ l ậ p t r ì n h J a v a ( J D K 1.4)
# J a v a v à d ồ h ọ a x ử l ý ả n h
* J a v a A p p l e t , A W T v à J a v a 2 D
# L ậ p t r ì n h ứ n g d ụ n g v ớ i J F C
Trang 3MK.PUB
P H Ư Ơ N G L A N (Chủ biên)
H O À N G Đ Ứ C H Ả I
T R U N G T Ấ M H Ọ C UZh
Trang 5L Ờ I N Ó I Đ Ầ U
C h à o mừng b ạ n đ ã đ ế n với giáo t r ì n h "Java" t ậ p 1 K h i b ạ n c ầ m quyển s á c h n à y trong tay có l ẽ Java đ ã t r ả i qua m ộ t bước t i ế n k h á d à i ,
t h ă n g t r ầ m với đủ lời n h ậ n x é t B ạ n b i ế t gì về Java? M ộ t n g ô n ngữ n ổ i tiếng? m ộ t côn g ngh ệ hay m ộ t h ệ đi ề u h à n h ? D ù n g cho I n t e r n e t hay mạng? Java n g à y nay đ ã và đ a n g l à m được những gì? So với những công nghệ của Microsoít n h ư N É T , Visual Basic, Visual c # , Web Services Java có l ợ i t h ê cạnh t r a n h hay k h ô n g ?
Cách đ â y 5 n ă m (1998) c h ú n g tôi l ầ n đ ầ u t i ê n đ ã t i ế p cận và giới
t h i ệ u giáo t r ì n h l ậ p t r ì n h Java với các b ạ n (cùng với tựa đ ề của quyển
s á c h n à y ) Lúc đó Java đ a n g còn ở p h i ê n b ả n 1.1 và phôi thai ở p h i ê n bản 1.2 SDK Java k h ô n g thay đ ổ i nhiều n ế u chỉ n h ậ n x é t qua số p h i ê n bản (version) P h i ê n b ả n m ớ i n h á t m à các b ạ n sẽ cùng c h ú n g tôi t i ế p cận trong giáo t r ì n h n à y là 1.4 Tuy n h i ê n , m ỗ i số p h i ê n b ả n thay đ ổ i của Java là m ộ t cuộc cách m ạ n g r ấ t l ớ n , b ạ n có t h ể h ì n h dung nó n h ư m ộ t cuộc cách m ạ n g chuyển đ ổ i giữa Windows 3.1 l ê n Windovvs 95 hay t ừ Windows 95 l ê n Windows NT/2000 hoặc XP
Trong l ầ n xuất b ả n n à y , b ạ n sẽ cùng c h ú n g tôi t i ế p cận m ộ t sức sông m ớ i của Java p h i ê n b ả n 1.4 Đ ã có những thay đ ổ i r ấ t nhiều v à r ấ t lớn về k i ê n t r ú c của Java Có t h ể những gì b ạ n b i ế t về Java trước d â y cũng đ ã đ ế n lúc cầ n xem x é t l ạ i V ớ i Java, có nhữn g côn g n g h ệ tư ởn g
n h ư l à t r á i t i m và sức sống trước đ â y nay đ ã l u mờ, chẳng h ạ n n h ư Applet Applet là những m ầ u ứng dụng n h ỏ có k h ả n ă n g chạy trong t r ì n h duyệt và đ ã từng đưa Java l ê n đỉnh cao của những n ă m cuối t h ế k ỷ 20, đầu t h ế kỷ 2 1 T h ế n h ư n g giờ đ â y (chính x á c là ở t h ờ i đ i ể m n à y 2003) Applet ít còn được quan t â m đ ế n do sự p h á t t r i ể n và h ỗ t r ợ quá m ạ n h m ẽ của những n g ô n ngữ script n h ư Java Script ngay trong t r ì n h duyệt Web Applet v ẫ n còn được sử dụng trong t r ì n h duyệt n h ư n g ở dạng plug-in chứ
k h ô n g còn được h ỗ t r ợ mặc định bởi t r ì n h duyệt n h ư ban đ ầ u nữa Java Applet mang m ộ t phong cách và định hướng k h á c , đó là n g h i ê n g về h ồ trợ cho ứng dụng Web p h í a client chạy t r ê n m ạ n g I n t r a n e t n h i ề u hem là ứng dụng chạy trực t i ế p t r ê n t r ì n h duyệt t h ô n g qua k ế t nôi Internet T ạ i sao? Câu t r ả l ờ i r ấ t đơn g i ả n , Microsoft k h ô n g muốn có Java, n h ư n g Sun System (cha đ ẻ của Java) đ ã đưa Java vượt qua k h ó k h ă n t r ở n ê n uyển chuyển và hữu dụng hơn Java đ a n g v à đủ sức cạnh t r a n h với t ấ t cả công nghệ m à Microsoíl đ a n g t h á c h thức t h ế giới
Còn những gì thay đ ổ i trong p h i ê n b ả n 1.4 của Java? R ấ t n h i ề u bạn ạ! Đó l à t á t cả những gì m à c h ú n g ta sẽ n g h i ê n cứu và học h ỏ i trong suốt bộ giáo t r ì n h n à y
Trang 6L Ờ I N G Ỏ Kính thưa quý B ạ n đọc gần xa, Ban xuất b á n M K P U B trước hét xin bày tó lòng biết ơn và n i ề m vinh h ạ n h trước n h i ệ t t ì n h của đ ó n g đáo
B ạ n đọc đối với tủ sách M K P U B trong thời gian qua
K h ấ u hiệu của c h ú n g tòi là:
* Lao động khoa học n g h i ê m túc
* Chất lượng và ngày càng chất lượng hơn
* T ấ t cả vì B ạ n đọc
Rất nhiều B ạ n đọc đã gửi maiL cho c h ú n g tòi đóng góp nhiều ý k i ê n
quý báu cho tủ sách
Ban xuất bản M K P Ư B xin được k í n h mời quý B ạ n đọc t h a m gia cùng n â n g cao chất lượng tủ sách của c h ú n g ta
Trong quá t r ì n h đọc, x i n các B ạ n ghi chú l ạ i các sai sót (dù nhỏ, lớn) của cuốn sách hoặc các n h ậ n xét của riêng Bạn Sau đó x i n gửi vê địa chỉ:
E-mail: mk.book@cinet.vnnevvs.com; mk.pub@cinet.vnnews.com Hoặc gửi về: N h à s á c h M i n h K h a i
249 Nguy ễ n T h ị M i n h Khai , Q.I , Tp H ồ Ch í M i n h
N ế u B ạ n ghi chú trực t i ế p l ê n cuôn sách , r ồ i gửi cuốn s á c h đ ó cho chúng tôi thì chúng tôi sẽ x i n h o à n l ạ i cước phí bưu đ i ệ n và gửi l ạ i cho
B ạ n cuốn sách k h á c
C h ú n g tôi xin gửi t ặ n g một cuốn s á c h của tủ sách M K P U B tùy chọn lựa của B ạ n theo một danh mục t h í c h hợp sẽ được gứi tới B ạ n
Với mục đích ngày c à n g n â n g cao chất lượng của tủ sách M K P U B , chúng tôi r ấ t mong n h ậ n được sự hợp tác của quý B ạ n đọc gần xa
" MK.PUB và Bạn đọc cùng làm ỉ"
MK.PUB
Trang 7M Ụ C L Ụ C
L Ờ I N Ó I Đ Ầ U 3
L Ờ I N G Ỏ 4
M Ụ C L Ụ C 5
C H Ư Ơ N G Ì : N Ế M T H Ử C A F É J A V A 19
1 Các ứng dụng Java 19
1.1 Java l ậ p t r ì n h ứng dụng Console 19
1.2 Java l ậ p t r ì n h ứng dụng Desktop với Swing (JFC) 20
1.3 Java Applet 22
1.4 Java l ậ p t r ì n h m ạ n g 23
1.5 Java l ậ p t r ì n h ứng dụng Web 23
1.6 Java l ậ p t r ì n h cơ sở d ữ l i ệ u 25
1.7 JavaBean 25
1.8 Java l ậ p t r ì n h ứng dụng p h â n t á n 26
1.9 Java l ậ p t r ì n h điều k h i ể n t h i ế t bị 26
1.10 Java m ộ t n ề n (platíbrm) h ệ điều h à n h và môi trường ứng dụng
Internet 26
1.11 Các k h á n ă n g m ớ rộng và m ạ n h m ẽ k h á c của Java 26
1.12 File thực t h i của Java 28
2 Các môi trường h ỗ trợ p h á t t r i ể n ứng dụng Java 29
3 Các t í n h n ă n g của Java S D K 1.4 30
4 K ế t chương 32
C H Ư Ơ N G 2 : G I Ớ I T H I Ệ U V À C À I Đ Ặ T J A V A J D K 33
Ì Lịch sử 33
1.2 Sự p h á t t r i ể n 35
2 1 Đơ n g i ả n (Simple) 36
Trang 8S Ị e M Ụ C L ự c
2.2 Hướng đ ố i tượng (Object Oriented) 37
2.4 T h ô n g dịch (Interpreter) 38
2.7 K i ế n t r ú c trung t í n h (Neutral architecture) 38
3.2 Cập n h ậ t b i ế n đường d ẫ n trong h ệ điều h à n h 41
3.4 B ắ t đ ầ u sử dụn g cá c công cụ J D K 42
4 K ế t chương 44
C H Ư Ơ N G 3 : N G Ô N N G Ữ L Ậ P T R Ì N H J A V A 45
1 L ậ p t r ì n h hướng đ ố i tượng 45
1.1 L ậ p t r ì n h hướng đ ố i tượng 45
1.2 Java và hướng đ ố i tượng 50
2 Chươn g t r ì n h Java đ ầ u tay 52
2.1 Chương t r ì n h HelloWorld - X i n c h à o t h ế giới 52
2.2 B i ế n môi trường CLASSPATH 54
2.3 Câu trúc chương t r ì n h Java 55
3 Ngôn ngữ Java 57
Trang 9M Ụ C L Ụ C 7 3.3 Giới t h i ệ u về b i ế n số 61
3.4 K i ể u dữ l i ệ u 61 3.5 H ã n g (literal) 67 3.6 M ả n g (Array) 71 3.7 T o á n tử và Biểu thức 73
3.8 Điều k h i ể n 77 3.9 H à m - P h ư ơ n g thức (Function - Method) 91
4 Lớp và đôi tượng 96 4.1 Lớp (class) 96 4.2 Thuộc t í n h (vùng của lớp - Field) 97
4.3 P h ư ơ n g thức 98 4.4 Lớp và sự kê thừa (Inheritance) 102
4.5 Gói t h ư v i ệ n (Packages): 107
4.6 Ngoại l ệ (Exception) n o
4.7 T u y ế n và đ a t u y ê n 112
4.8 Giao d i ệ n 118
5 K ế t chương 124
C H Ư Ơ N G 4 : X Â Y D Ư N G J A V A A P P L E T 125
2.1 Tạ o tậ p tin> Java nguồn 126
2.2 Biên dịch tập t i n nguồn 126
2.3 Đ ặ t Applet vào trang Web H T M L 127
2.4 Chạy Applet 128 2.5 P h â n tích U I
3 Cấu t r ú c Applet 13( 3.1 Vòng đời cùa một Applet 13S
3.2 Các phương thức cơ b ả n 13c
Trang 10M Ụ C L Ự C 3.3 Các phương thức vẽ và bẫy sự k i ệ n tương tác t r o n g Applet 134
3.4 Giới h ạ n của Applet 139
3.5 T h ẻ <Applet> 140
4.1 Úng dụng minh họa về Applet 142
5 H o à n t ấ t mộ t Applet 157
5.1 N h à p h á t t r i ể n Applet cần k i ể m tra 157
6 K ế t chương 158 CHƯƠNG 5 : LẬP TRÌNH GIAO DIỆN 159
1 M ớ đầu 159
2 Giới t h i ệ u về các t h à n h p h ầ n A W T 160
3 N ú t n h ấ n (Button) 162
3.1 Cách tạo nút n h ấ n 162
3.2 Sử dụng nút n h â n 163
3.3 Tạo nút n h â n theo mô h ì n h xử lý t ì n h huống trong Java
1.2 và 1.4 7 166
4 N h ã n (Label) 169
5 N ú t chọn (Radio Button) và ô đ á n h dâu (Checkbox) 171
5.1 Tạo ô đ á n h dấu (Checkbox) 172
5.2 K i ể m tra và t h i ế t lập t r ạ n g t h á i cho ô đ á n h dấu (Checkbox
State) 172 5.3 Xử lý t ì n h huống k h i ô đ á n h dấu thay đ ổ i t r ạ n g t h á i 173
5.4 Tạo nút chọn (Radio Button) 176
5.5 Cách sử dụng n ú t chọn 177
6 Lựa chọn (Choice) 180
6.1 Đối tượng Choice và các p h ư ơ n g thức hỗ trợ 180
6.2 Sử dụng thành phần Choice 182
Trang 11M Ụ C L Ụ C 9 Ị j |
7 Danh sách (Lists) 184
7.1 Cách tạo một danh sách 185
7.2 Các đặc điểm của danh sách 186
7.3 Sử dụng đối tượng danh sách (List) 188
8 0 văn bản và vùng văn bản (Text Field và Text Areas) 193
9 Tạo ô văn bản (TextField) 194
10 Tạo vùng văn bản (TextArea) 195
li Đặc điếm chung của các thành phần văn bán 195
12 Đặc điểm riêng của đối tượng ô văn bản (TextField) 197
13 Đặc đ i ể m r i ê n g của đôi tượng TextArea 197
14 Sứ dụng đối tượng Textíìeld và Textarea 199
15 Thanh trượt (Scrollbar) 201
15.1 Tạo t h a n h trượt 202 15.2 Các đặc đ i ể m của t h a n h trượt 202
15.3 Sử dụng thanh trượt 203
16 Giới t h i ệ u về khung chứa (Container) và bộ quản lý t r ì n h bày
(Layout Manager) của t h ư v i ệ n A W T 209
16.1 Đối tượng khung chứa (Container) là gì 209
16.2 Bộ quản lý cách t r ì n h bày là gì (Layout Managers) 210
17 Các đặc điểm chung của đối tượng khung chứa (Container) 210
18 Khung chứa Panels 212
19 Frames 214
19.1 Khung chứa Frame được dùng dể làm gì? 214
19.2 Tạo đối tượng khung chứa Frame 215
20 Các đặc d i ê m của khung chứa Frame 217
21 Sử dụng cửa sổ đế tạo một ứng dụng Windows độc lập 218
22 Gắn đối tượng trình đơn Menu vào cửa sổ ứng dụng 223
23 Sứ dụng t r ì n h đơn Menu 226
Trang 12l o M Ụ C L Ụ C
24 Khung chứa Dialog 228
24.1 Cách tạo k h u n g chứa Dialog 229
24.2 Các đặc đ i ể m của khung chứa Dialog 230
25 Khung chứa ScrollPane 235
26 Bộ quản lý c á c h t r i n h b à y (Layout Manager) 235
26.1 Cách t r ì n h b à y FlowLayout 236
27 Cách t r ì n h b à y GridLayout 238
28 Cách t r ì n h b à y BorderLayout 240
29 Cách t r ì n h b à y GridBagLayout 241
30 Đ ố i tượng Insets 247
3 1 Cách t r ì n h b à y t ự do (Null layout) 248
33 P h ư ơ n g thức chung của các t h à n h p h ầ n thuộc t h ư v i ệ n A W T 251
34 Xác định vị t r í và kích thước của các đ ố i tượng 253
35 Các t ì n h huống chung xảy ra cho những đ ố i tượng d ẫ n xuất
từ lớp Component 255
36 Sử dụng khung chứa ScrollPane 255
37 K ế t chương 257
C H Ư Ơ N G 6 : Đ ố i T Ư Ợ N G Đ ồ H Ọ A ( G R A P H I C S ) 259
1 K h á i quát 259
2 P h â n b i ệ t p h ư ơ n g thức Painto, Repainto và UpdateO 260
3 Lớp Graphics 261
4 H ệ tọa độ 262
5 K ẻ đường t h ẳ n g 262
6 Vẽ h ì n h chữ n h ậ t (Rectangle) 263
7 Vẽ h ì n h chữ n h ậ t 3 chiều (3D Rectangle) 264
8 V ẽ h ì n h chữ n h ậ t t r ò n góc (Round Rectangle) 265
Trang 13M Ụ C L Ụ C l i ÌỀ
l o V ẽ đ a giá c (Polygons) 26
l i Lớp Polygon 26
12 Vẽ chữ (Text) 27
13 Đ ố i tượng Font 27
14 Các kích thước Font với đ ố i tượng FontMetrics 27
16 V ẽ h ì n h ả n h (Image) 28
1.1 Vẽ ả n h vào Applet 28'
1.2 Vẽ ả n h vào cửa sổ ứng dụng 291
17 Theo dõi t i ế n t r ì n h nạp ả n h bằng lớp MediaTracker 29:
18 Các đ ố i tượng t i ệ n ích k h á c của lớp Graphics 29'
1.1 Lớp Point 29' 1.2 Lớp Dimension 29f
1.3 Lớp Rectangle 29í
19 Lớp Color t h ể h i ệ n m à u sắc 301
20 Vùng cắt (Clipping Region) 30!
21 I n ấ n (Printing) 30;
22 K ế t chương 30!
C H Ư Ơ N G 7 : X Ử L Ý Ả N H ( I M A G E P R O C E S S I N G ) 31
1 Các cách vẽ ả n h 31 1.1 P h ó n g to, thu nhỏ ả n h 31!
1.2 Xoay á n h 3 1 ' 1.3 Cắt ả n h 31<
2 Đ ố i tượng ImageObserver 31'
3 Mô h ì n h Cung Cấp-Tiêp n h ậ n (Producer-Consumer) 32
3.1 Đối tượng ImageProducer 32
3.2 Đ ố i tượng ImageConsumer 32
Trang 14S I 12 M Ụ C L ự c 3.4 Tạo ảnh từ vùng nhớ với đối tượng MemorylmageSource 324
3.5 Chép ảnh vào vùng nhớ với đối tượng PixelGrabber 327
4 Mô hình màu sắc (Color Model) 330
4.1 Mô hình màu trực tiếp với lớp DerectColorModel 331
4.2 Mô hình màu gián tiếp với lớp IndexColorModel 33o
5 Bộ lọc ảnh (Image Filter) 339
5.1 Bộ lọc CropImageFilter 341
5.2 Bộ lọc RGBImageFilter 343
5.3 Tạo bộ lọc có khá năng xoay ảnh 348
6 Các phương pháp xử lý ảnh mớ rộng 351
6.1 Sử dụng thành phần Alpha làm ảnh trong suốt 351
6.2 Biến đổi ánh thành âm bàn (Negative) 353
6.3 Biên đôi ảnh màu thành ánh có thang độ xám 354
6.4 Khử sắc độ màu của ảnh 355
6.5 Tăng độ sáng/tôi cho ảnh 356
7 Dùng bộ đệm làm khung hình phụ (off-screen) 358
8 Kết chương 360
CHƯƠNG 8 : xử LÝ LUÔNG VÀ TẬP TIN (STREAM VÀ FILES)361
1 Luồng là gì ? 361
2 Lớp luồng xuấưnhập cơ bán (InputStream và OutputStream) 365
3 Lớp Input Stream 365
4 Lớp OutputStream 367
5 Lớp FileInputStream 369
6 Lớp FileOuputStream 371
7 Lớp File và cách sử dụng 374
8 Lọc tên tập tin 379
9 Tạo những tập tin tạm thời (Temporary File) 381
10 Xóa tập tin tạm thời 382
Trang 15M Ụ C L Ụ C 13 Ị g
li Lớp RandomAccessFile và cách sử dụng 38Ỉ
12 Sử dụng các lớp nhập/xuất trung gian (Filter 10 Stream class) 38í
13 Luồng nhập trung gian (FilterInputStream) 38Ẽ
14 Lớp BufferedInputStream 39C
15 Lớp BufferedOutputStream 392
16 Đường ống và cách sử dụng (PIPE) 394
17 Lớp luồng SequencelnputStream 39£
18 Lớp PushbacklnputStream 401
19 Lớp StreamTokenizer 403
20 Đối tượng System.out 410
21 Đối tượng System.in 412
22 Lớp ObjectOutputStream 413
23 Lớp ObjectInputStream 416
24 Lớp PrintStream 417
25 Lớp ByteArrayOutputStream và ByteArraylnputStream 418
26 Lớp StringBufferInputStream 421
27 Lớp LineNumberlnputStream 421
28 Các luồng xuất nhập dùng ký tự Unicode 421
29 Các đối tượng Serializable 425
29.1 Serializable là gì ? 425
29.2 Mờ rộng khả năng đọc và ghi các đối tượng 429
30 Kết chương 431
CHƯƠNG 9 : ƠAVABEANS 432
1 Tống quan về JavaBeans 432
2 Công nghệ phần mềm dựa trên các thành phần 434
2.1 Nhu cầu sử dụng lại mã 434
2.2 Xây dựng phần mềm từ các thành phần (Component) 43£
3 Các thuộc tính của thành phần JavaBeans 43 £
Trang 16g i 14 M Ụ C L Ụ C
3.1 Thuộc t í n h (Property) cùa t h à n h p h ầ n JavaBeans l à gì 435
3.2 Các phương thức truy xuất (Accessor Methods) 436
3.3 Thuộc tính là một dãy nhiều phần tử (Indexed Properties) 437
3.4 Thuộc tính thể hiện sự thay đối (Bound Property) 437
3.5 Thuộc tính ràng buộc (Constraint Property) 441
4 T ì m hiểu cách Introspector l à m việc 445
4.1 Intospector là gì? 445 4.2 Thiết kế các phương thức mẫu dùng cho thuộc tính 445
4.3 T h i ế t k ế các phương thức mẩu d ù n g cho t ì n h huống (Event) 446
4.4 Khai b á o các phương thức một cách tường m i n h 446
5 Xử lý tình huống của thành phần JavaBeans 447
5.1 Các t ì n h huống n ộ i t ạ i (Event State) 447
5.2 Các tình huống dùng để tương tác (Event Listener) 451
5.3 Đ ă n g ký đ ố i tượng Listener với t h à n h p h ầ n JavaBeans 451
5.4 K h ả n ă n g đ ă n g ký m ộ t Listener (Unicast) và n h i ề u Listener
(Multicast) của t h à n h p h ầ n ƯavaBea n 456
6 Lưu g i ữ l ạ i đ ố i tượng JavaBeans 460
7 Các bước cần t h i ế t đ ể xây dựng JavaBeans 460
7.1 Cài đặt công cụ phát triển thành phần JavaBeans (BDK) 460
7.3 Kiểm tra JavaBeans sau khi hoàn tất 464
7.4 Đóng gói và chuyến giao cho người d ù n g 464
8 Xây dựng thành phần JavaBeans ButtonText3D 465
8.1 T h i ế t k ế tổng quát 465 8.2 Chuẩn bị cho các thuộc tính 467
8.3 Các tình huống cần xử lý 469
8.4 Các phương thức khới tạo khác 472
8.5 Một số bổ sung cần thiết trước khi biên dịch 478