Faculty of Information Technology, HCM University of Technology Giao diện của ch.trình MiniChat client Cửa sổ nhập thông tin của button “Connect” Cửa sổ nhập thông tin của button “login”
Trang 1Lập trình ứng dụng MiniChat bằng Java dùng cơ chế xử lý Multithread
TS Nguyễn Văn Hiệp, Nguyễn Quang Hùng
E-mail: hungnq2@dit.hcmut.edu.vn
Website: www.dit.hcmut.edu.vn/~hungnq/courses.htm
Trang 2Mục tiêu
1. Sử dụng cơ chế Java multithread.
2. Bài tập ứng dụng MiniChat cho phép làm quen
với qui trình xây dựng 1 chương trình theo giao diện “Dialog based” bằng JBuilder
Trang 3Faculty of Information Technology, HCM University
of Technology
Mục lục
1. Giới thiệu c.trình MiniChat
2. Kỹ thuật lập trình Java Multi-thread
3. Xây dựng ứng dụng Minichat bằng JBuilder
đồng thời từ các client bằng cơ chế multithread
Trang 4Giới thiệu về ctrình MiniChat
Chức năng: cho phép nhiều user đăng ký vào các nhóm để trò chuyện với nhau.
Mô hình lựa chọn: client/server
Server: quản lý các nhóm và các user của từng nhóm, phân phối chuỗi thông tin từ một user đến các user khác.
Client: giao tiếp với các user; cho phép họ đăng ký nhóm; gởi/nhận thông tin cho nhau.
Định nghĩa giao thức dùng cho hệ thống MiniChat:
Dạng reply cho tất cả các request:
N <chuỗi dữ liệu phụ kèm theo>
N = 1: Thành công, N = 0: Thất bại
Trang 5Faculty of Information Technology, HCM University
of Technology
Giao diện của ch.trình MiniChat client
Cửa sổ nhập thông tin của
button “Connect”
Cửa sổ nhập thông tin của
button “login”
Trang 6Giao diện của MS Visual C++ IDE
Chạy Microsoft Visual C++từ Start Programs Microsoft Visual C++
Trang 7Kỹ thuật lập trình Java Multithread
Tài liệu tham khảo:
java.sun.com
Trang 8Kỹ thuật Java Multithread
Thread là một luồng thực thi trong một chương trình Máy ảo JVM cho phép một ứng dụng có
nhiều luồng thực thi đồng thời.
Có 2 cách dùng Java multithread (đa luồng):
override method Thread.run().
và method Runnable.run()
Trang 9Faculty of Information Technology, HCM University
6. public void run ( ) {
7. // compute primes larger than minPrime
Trang 10Cách 2: Hiện thực giao diện Runnable
1. class PrimeRun implements Runnable {
2. long minPrime;
3. PrimeRun ( long minPrime ) {
4. this.minPrime = minPrime;
6. public void run () {
7. // compute primes larger than minPrime
Trang 11Faculty of Information Technology, HCM University
of Technology
Thread – Các constructor của lớp Thread
Thread ( ) - Allocates a new Thread object.
Thread ( Runnable target)
String name)
Tạo ra 1 thread mới, target là đối tượng có method run để chạy,
tên được xác định bởi name, thuộc về 1 group.
String name, long stackSize)
Giống trên nhưng có thêm kích thước stack của thread mới.
Trang 12 static void sleep ()
setDaemon (boolean on); isDaemon ()
Các method join ()
…
Trang 13Xây dựng ứng dụng MiniChat bằng JBuilder
Trang 14Xây dựng ứng dụng MiniChat bằng JBuilder
Trang 15Faculty of Information Technology, HCM University
of Technology
Đóng các projects đang mở
Chọn menu File.Close projects
Chọn button “All” để đóng tất cả projects đang mở
Trang 16Tạo project mới tên MiniChatClient
Chọn File.New projects
Trang 17Faculty of Information Technology, HCM University
of Technology
Project Wizard – Step 1 of 3
Nhập tên Project, lựa chọn thư mục lưu project, chọn Template (nên để default project), rồi chọn Next
Trang 18Project Wizard – Step 2 of 3
Chọn JDK (1.4.1), chọn các đường dẫn lưu các lớp, c.trình nguồn, thư mục Working (nên để mặc định)
Trang 19Faculty of Information Technology, HCM University
of Technology
Project Wizard – Step 2 of 3
Thêm các thư viện dùng kèm theo (nếu có) ở tab Required Libraries Rồi chọn NEXT
Trang 20Project Wizard – Step 3 of 3
Xác định mã hóa (UTF-8), thêm các thông tin khác về tên dự án,
mô tả… và chọn FINISH
Trang 21Faculty of Information Technology, HCM University
of Technology
Tạo 1 ứng dụng trong project MiniChatClient
Chọn menu File.New để mở Object Gallery Chọn icon Application
để tạo một ứng dụng mới trong project MiniChatClient
Trang 22Application Wizard – Step 1 of 3
Nhập tên ứng dụng, chọn package cho các class sẽ tạo ra, tên lớp Application mới này.
Trang 23Faculty of Information Technology, HCM University
of Technology
Application Wizard – Step 2 of 3
Nhập tên class, tựa đề, chọn các mục tạo status bar, About dialog… Rồi chọn NEXT
Trang 24Application Wizard – Step 3 of 3
Nhập tên quản lý cấu hình run time (nên để mặc định) Rồi ấn nút FINISH để tạo ứng dụng MiniChatClient
Trang 25Faculty of Information Technology, HCM University
of Technology
Tạo ứng dụng c.trình MiniChatClient
Trang 26Thiết kế giao diện
Chọn tab Design để chuyển sang mode thiết kế giao diện bằng các control JComponents như JButton, JList, JPanel…
Trang 27Faculty of Information Technology, HCM University
of Technology
Thiết kế giao diện – Dùng XYLayout
Chọn mục Content Pane, thay đổi thuộc tính Layout thành “XYLayout”
để có thể thiết kế GUI dạng tự do dựa trên tọa độ trục X và Y.
Trang 28Thiết kế giao diện – kéo các thành phần
Chọn mục tab “SWING”, chọn icon “JButton” rồi vẽ nó ở góc trái trên form, chọn button vừa vẽ quan sát và gán giá trị cho thuộc tính
“name=btnConnect”, “margin=1,1,1,1”, thuộc tính “text = Connect”
Trang 29Faculty of Information Technology, HCM University
Trang 30Thiết kế giao diện – tạo danh sách nhóm
Trang 31Faculty of Information Technology, HCM University
of Technology
Thiết kế giao diện
-Lặp lại bước vừa
rồi để tạo các danh
Trang 32Thiết kế giao diện – Hoàn tất
Trang 33Faculty of Information Technology, HCM University
Trang 34Tạo hàm nắm bắt các sự kiện (tiếp)
- Viết code cho hàm
Trang 35Faculty of Information Technology, HCM University
of Technology
Mô hình multi-thread ở client
Trang 36Mô hình lập trình multi-thread ở server
Trang 37Faculty of Information Technology, HCM University
of Technology
Code phía Server
// code của file MiniChatServerDlg
Trang 38Code phía Server (tiếp)
accept
JPanel contentPane;