Lập trình ứng dụng Java Desktop
với SwingX, Hibernate+JPA
Võ Thành Luân
Tổ tư vấn khách hàng – Phòng Kinh Doanh
Trình bày:
TRUNG TÂM CÔNG NGHỆ PHẦN MỀM CẦN THƠ
Seminar
Võ Thành Luân
Seminar: SwinngX, Hibernate, JPA Trang 2
Nội dung
Giới thiệu về Swing
So sánh Swing, AWT, SWT, XUL
Giới thiệu về SwingX
Kiến trúc của SwingX
Các thành phần trong SwingX
Sử dụng SwingX trong NetBeans
Các framework nên dùng với SwingX
Tài liệu tham khảo
Demo
Question
Võ Thành Luân
Giới thiệu về Swing (1)
Swing là bộ công cụ GUI thế hệ kế tiếp mà Sun Microsystems tạo ra cho
phép môi trường phát triển enterprise trong Java.
Chính thức phát hành vào 3/1998
Swing không sử dụng bất kỳ thành phần nào của AWT
Swing 1.0 chứa khoảng 250 class và 80 interface
Swing 1.4 chứa khoảng 451 class và 85 interface
Yêu cầu JDK 1.1.5 trở lên.
Seminar: SwinngX, Hibernate, JPA Trang 3
Võ Thành Luân
Giới thiệu về Swing (2)
Look and Feel pluggable : Swing là khả năng viết những cảm quan
(Look&Feels) cho mỗi thành phần, thậm chí thay đổi cảm quan vào thời
điểm runtime.
Các thành phần lightweight : Hầu hết các thành phần Swing là
lightweight, chỉ có một vài container top-level là không phải
Đặc điểm mở rộng: So với AWT thì Swing có rất nhiều những thành phần
mới như table, tree, slider, spinner, progress bar, internal frame và text
Ngoài ra còn có hỗ trợ debug cho việc hiển thị những thành phần Swing
Seminar: SwinngX, Hibernate, JPA Trang 4
Đặc điểm phổ biến
Võ Thành Luân
So sánh Swing, AWT, SWT, XUL
Ra đời rất sớm, là nổ lực đầu tiên của Java về giao diện GUI có tên gọi là
Abstract Windowing Toolkit (AWT), được dựa trên các component của hệ
thống bản địa.
Ngày nay AWT ít khi được sử dụng chỉ một số lớp AWT, không bao gồm
những component, thì vẫn thường được sử dụng.
Seminar: SwinngX, Hibernate, JPA Trang 5
AWT
SWT
IBM đã quyết định xây dựng một tập các lớp GUI được xây dựng dựa
trên các component gốc gọi là SWT
và sử dụng các thành phần giao diện đồ họa có sẳn của hệ điều hành
Đáp ứng khả năng portable
Tốc độ và tài nguyên bộ nhớ chiếm giữ ít hơn so với sử dụng Swing
Võ Thành Luân
So sánh Swing, AWT, SWT, XUL (2)
AWT, Swing và SWT rất giống nhau về hướng tiếp cận
XUL/XML tiếp cận theo một hướng khác trong tư duy về giao diện người
dùng là diễn tả nó trong XML.
Là một hướng đi mới và đầy hứa hẹn, tuy nhiên tài liệu rất ít hoặc thậm
chí không tồn tại.
Seminar: SwinngX, Hibernate, JPA Trang 6
XUL/XML
Swing
Là sự lựa chọn phổ biến nhất.
Hổ trợ Look and Feel
Swing không thay thế bất cứ thứ gì trong AWT vì thế có thể đan xen sử
dụng 2 thư viện này
Hiện tại đã có SwingX là thư viện bổ sung nhiều tính năng mới cho Swing
Võ Thành Luân
Giới thiệu về SwingX
SwingX là thành phần mở rộng của Swing GUI
Cung cấp nhiều component mới và tính năng cao cấp:
- Sorting, filtering, highlighting for tables, trees, and lists
- Find/search
- Auto-completion
- Login/authentication framework
- TreeTable component
- Collapsible panel component
- Date picker component
- Tip-of-the-Day component
Seminar: SwinngX, Hibernate, JPA Trang 7
Võ Thành Luân
Giới thiệu về SwingX (2)
Các thông tin về SwingX có thể tìm thấy tại trang SwingLabs.org
Phiên bản mới nhất hiện nay SwingX 1.6
SwingX yêu cầu JDK 5 trở lên.
Seminar: SwinngX, Hibernate, JPA Trang 8
Võ Thành Luân
Kiến trúc SwingX
Kiến trúc Swing không khác gì so với Swing
Sử dụng kiểu đơn giản của thiết kế MVC gọi là Model – Delegate
Seminar: SwinngX, Hibernate, JPA Trang 9
Mỗi thành phần Swing chứa một Model và một UI (VD: Jbutton thì có
Button-UI và ButtonModel
MVC
Model-Delegate
Võ Thành Luân
Sử dụng SwingX trong NetBeans (1)
Seminar: SwinngX, Hibernate, JPA Trang 10
Võ Thành Luân
Sử dụng SwingX trong NetBeans (2)
Seminar: SwinngX, Hibernate, JPA Trang 11
Võ Thành Luân
Sử dụng SwingX trong NetBeans (3)
Seminar: SwinngX, Hibernate, JPA Trang 12
Võ Thành Luân
Sử dụng SwingX trong NetBeans (4)
Seminar: SwinngX, Hibernate, JPA Trang 13
Võ Thành Luân
Sử dụng SwingX trong NetBeans (5)
Seminar: SwinngX, Hibernate, JPA Trang 14
Võ Thành Luân
Sử dụng SwingX trong NetBeans (6)
Seminar: SwinngX, Hibernate, JPA Trang 15
Võ Thành Luân
Sử dụng SwingX trong NetBeans (7)
Seminar: SwinngX, Hibernate, JPA Trang 16
Component SwingX trong Palette
Võ Thành Luân
Các framwork nên dùng với SwingX
Binding Jgoodies cho việc binding dữ liệu ()
Validation Jgoodies cho việc validation dữ liệu ()
Seminar: SwinngX, Hibernate, JPA Trang 17
Võ Thành Luân
Seminar: SwinngX, Hibernate, JPA Trang 18
Demo
Võ Thành Luân
Demo : Module Nhập hàng điện thoại di động
Seminar: SwinngX, Hibernate, JPA Trang 19
Kiến trúc module
Hibernate + JPA
SwingX
MySQL
Võ Thành Luân
Demo : Module Nhập hàng điện thoại di động
Seminar: SwinngX, Hibernate, JPA Trang 20
Cách thức hoạt động
Hibernate + JPA
MySQL
Võ Thành Luân
Demo : Module Nhập hàng điện thoại di động
Seminar: SwinngX, Hibernate, JPA Trang 21
try{
HangHoa hh=new HangHoa();
hh.setTenhang(txtTH.getText());
LRItem item=(LRItem)cboLoaiHang.getSelectedItem();
LoaiHang l=new
LoaiHang(Integer.valueOf(item.getRightText()));
hh.setLoaiHang(l);
HangHoaJpaController control=new HangHoaJpaController();
control.create(hh);
JOptionPane.showMessageDialog(rootPane, "Thêm hàng hóa
thành công");
}
catch(Exception ex){
JOptionPane.showMessageDialog(rootPane, "Không thể thêm
hàng hóa"+ex.getMessage());
}
Võ Thành Luân
Tài liệu tham khảo
Bài dịch : “So sánh Swing, AWT, SWT” tại blog
Website:
Website:
Website:
Seminar: SwinngX, Hibernate, JPA Trang 22
Võ Thành Luân
Question
Seminar: SwinngX, Hibernate, JPA Trang 23
Võ Thành Luân
Seminar: SwinngX, Hibernate, JPA Trang 24
Chân thành cảm ơn