1.ModelM – ViewV – ControllerC: MVC trong Swing là kiến trúc cho các ứng dụng gồm 3 phần: • Model: là phần logic của ứng dụng.Trạng thái của đối tượng đồ hoạ hay cấu trúc dữ liệu của
Trang 1Ngôn ngữ lập trình java
Trang 2II.MVC trong Swing(2)
III.Ứng dụng MVC trong chương trình:
1.Sự ra đời của mô hình MVC
2.Mô hình MVC trong swing
1.Model(M) – View(V) – Controller(C)
Trang 31.Sự ra đời của mô hình MVC:
Bắt đầu vào những năm 70 của thế kỷ 20, tại phòng thí nghiệm Xerox PARC ở Palo Alto, sự ra đời của giao
diện đồ họa (Graphical User Interface) và lập trình hướng đối tượng (Object Oriented Programming) cho
phép lập trình viên làm việc với những thành phần đồ họa như những đối tượng đồ họa có thuộc tính và phương thức riêng của nó Không dừng lại ở đó, những nhà nghiên cứu ở Xerox PARC còn đi xa hơn khi cho
ra đời cái gọi là kiến trúc MVC (viết tắt của Model –
View – Controller)
Trang 4• Swing trong java sử dụng kiến trúc Model -View –
Controller (MVC) như một thiết kế nền tảng đằng sau mỗi một thành phần của nó
• Trong bài báo cáo này, nhóm em sẽ trình bày phương
pháp thiết kế MVC, và minh họa Cách sử dụng MVC trong swing với ngôn ngữ lập trình java
• MVC được dùng một cách rộng rãi trong nhiều hệ
thống phần mềm hướng đối tượng (OO Application), bất
kể được viết bằng ngôn ngữ hướng đối tượng (OO Language) nào Và MVC được biết đến như là một thiết
kế giao diện người dùng hướng đối tượng khá tốt
Trang 52.Mô hình MVC trong swing:
Trang 6Hình 2: Mô hình MVC cải tiến của Swing
Trang 71.Model(M) – View(V) – Controller(C):
MVC trong Swing là kiến trúc cho các ứng dụng gồm 3 phần:
• Model: là phần logic của ứng dụng.(Trạng
thái của đối tượng đồ hoạ hay cấu trúc dữ liệu của đối tượng)
Ví dụ 1: GUI Component đơn giản là Checkbox
Checkbox có thành phần:
• View: phần hiển thị của ứng dụng.
• Controller: điều khiển giao tiếp với người dùng.
Trang 8Ví dụ 2: Trên JList
• View để thể hiện nó với trạng thái tương ứng lên màn
hình
• Controller :để xử lý những sự kiện khi có sự tương tác
của người sử dụng hoặc các đối tượng khác lên Checkbox
• Model: mô hình dữ liệu cho JList
• View: là giao diện hiển thị các mục chọn
• Controller: xử lý sự kiện mỗi khi các mục trong
JList được chọn
• Model để quản lý trạng thái của nó là check hay uncheck
Trang 9
2 Tương tác trong MVC :
• Khi người sử dụng cần thay
đổi trạng thái của đối tượng đồ họa, thì sẽ tương tác thông qua Controller của đối tượng đồ họa
• Controller sẽ thực hiện việc
thay đổi trên Model Khi có bất kỳ sự thay đổi nào ở xảy ra
ở Model, nó sẽ phát thông điệp (broadcast message) thông báo cho View và Controller biết
Trang 10• Nhận được thông điệp từ Model:
View sẽ cập nhật lại thể
hiện của mình, đảm bảo rằng nó luôn là thể hiện trực quan chính xác của Model
Controller khi nhận được
thông điệp từ Model, sẽ
có những tương tác cần thiết phản hồi lại người sử dụng hoặc các đối tượng khác
Trang 11• Ví dụ: GUI Component là Checkbox
Khi người sử dụng nhấn chuột vào Checkbox:
Thành phần Controller của Checkbox sẽ
xử lý sự kiện này, yêu cầu thành phần Model
thay đổi dữ liệu trạng thái Sau khi thay đổi trạng thái, thành phần Model phát thông điệp đến thành phần View và Controller
Trang 12Thành phần Controller nhận được thông điệp
do Model gởi tới sẽ có những tương tác phản hồi với người sử dụng nếu cần thiết
Thành phần View của Checkbox nhận được
thông điệp sẽ cập nhật lại thể hiện của Checkbox, phản ánh chính xác trạng thái Checkbox do Model lưu giữ
Trang 13Kiến trúc MVC đã tách biệt (decoupling) sự phụ thuộc giữa các thành phần trong một đối tượng đồ họa, làm tăng tính linh động (flexibility) và tính tái sử dụng (reusebility) của đối tượng đồ họa đó Một đối tượng
đồ họa bấy giờ có thể dễ dàng thay đổi giao diện bằng cách thay đổi thành phần View của nó trong khi cách thức lưu trữ (Model) cũng như xử lý (Controller) không hề thay đổi Tương tự, ta có thể thay đổi cách thức lưu trữ (Model) hoặc xử lý (Controller) của đối tượng đồ họa mà những thành phần còn lại vẫn giữ nguyên
3 Ưu điểm của MVC trong Swing
Trang 14III.Ứng dụng MVC trong chương trình:
Ví dụ 1: Thiết kế giao diện như hình dưới
• Model: Dữ liệu hiển thị cho TextArea
• View: Giao diện hiển thị khi nhấn nút “Show”
• Controller: Xử lý sự kiện khi nút “Show” được
nhấn
Trang 15III.Ứng dụng MVC trong chương trình(3):
Trang 16III.Ứng dụng MVC trong chương trình(1):
jta = new JTextArea(2,20);
Trang 17III.Ứng dụng MVC trong chương trình(2):
// Phuong thuc xu ly su kien khi nut duoc nhan
public void actionPerformed(ActionEvent e) {
public static void main(String[] args) {
// TODO Auto-generated method stub
new ShowDemo();
}
}
Trang 18III.Ứng dụng MVC trong chương trình(4):
Ví dụ 2: Thiết kế giao diện như hình dưới
• Model: Mô hình dữ liệu cho JList
• View: Giao diện hiển thị các mục được chọn
• Controller: Xử lý sự kiện khi một nút được nhấn
Trang 19III.Ứng dụng MVC trong chương trình:
Trang 20III.Ứng dụng MVC trong chương trình(5):
dt2 = new DefaultListModel();
for (int i =0;i<dsMonHoc.length;i++){
dt1.addElement(dsMonHoc[i]);
}
Trang 21III.Ứng dụng MVC trong chương trình(6):
lst1.setPreferredSize(new Dimension(100,120));
lst2.setPreferredSize(new Dimension(100,120));
jf.pack();
}
Trang 22III.Ứng dụng MVC trong chương trình(7):
// Phuong thuc xu ly su kien khi mot nut duoc nhan
public void actionPerformed(ActionEvent e) {
Trang 23III.Ứng dụng MVC trong chương trình(8):
Ví dụ 3: Thiết kế giao diện như hình sau
• Model: Mô hình dữ liệu cho JTable
• View: Giao diện hiển thị các mục được chọn
• Controller: Xử lý sự kiện khi một nút được nhấn
Trang 24III.Ứng dụng MVC trong chương trình(9):
Trang 25III.Ứng dụng MVC trong chương trình(10):
Trang 26III.Ứng dụng MVC trong chương trình(11):
Trang 27End_End