2. JFC - Java Foundation Class
JFC là thư viện các lớp được tạo ra nhằm đơn giản hóa
quá trĩnh thiết kê và giảm thời gian lập trình.
JFC mở rộng AWT bằng cách thêm vào các lớp và các
GUI component.
3. Swing
Swing là một tập các lớp trong JFC, nó cho phép tạo ra
các giao diện hấp dẫn.
Swing không chỉ thay thê AWT mà còn cung cấp thêm
rất nhiều component phức tạp khác (tab, scroll pane,
tree..).
4. Swing vs. AWT
AWT: Abstract Windows Toolkit:
• Java 1
• ĐƯỢc gắn với platform xác định
• Thích hỢp với việc phát triển các ứng dụng GUI đơn giản.
Swing components:
• Java 2
• Không gắn với platform cô định
• Mạnh, đa năng, linh hoạt
5. Swing Look and Feel
Look and Feel cung cấp một giao diện đồng nhất về màu
sắc, hình dạng, bô cục ( Look) và hành vi của các thành
phần ( Feel).
Swing cho phép người dùng lựa chọn look and feel: Java,
GTK+, Windows...
Khi người dùng không chỉ rõ Look and Feel thi Swing UI
Manager sẽ xác định Look and Feel nào sẽ được sử dụng.
6. Các thành phần GUI
Các đối tượng GUI: button, label, text field, check box,
radio button, combo box, ...
Mỗi loại đối tượng được xác định trong 1 lớp: JButton,
JLabel, JTextField, JCheckBox, JRadioButton,
JComboBox, ...
Mỗi lớp thành phần GUI có một sô constructor để tạo
các đối tượng thành phần GUI.
7. Câu trúc phân cãp thành phân
Cấu trúc thành phần nhìn từ trên xuống bao gồm :
Top-level Container(s):
•!.*!/ f ỳ ít "ýt"ĨXA/
YY f f yiSL'YY
Dỉ3.bg JDidhg
X
Ííđỉììe JFranie
JWffidow
Intermediate Container(s): trực tiếp chứa các thành
phần GUI khác.
Atomic Component(s): IButton, J Label....
9. intermediate Containers
Các intermediate Container mục đích chung:
All Folders I * ] cookies File Options Com
meine ojfSiGiii
E
Meters ▼
V I
A * 4Home Search Gu
iLJ
All Folders
B O OT
^ jpBfllipff
C j Adobe
as] urlpool
Panel
SplitPane TableView
DebugGraphics
Swing! Bi
Scroll pane Split pane
Các internediate mục đích đặc biệt:■ ___________ “_______ ■______,
Tabbed pane
InternalFram eDem o
Document
Docunmnt #1 :ị■: : 1 / ^ 0
F I Document u2
Choose Duke's Layer and Position
H Top Position in LayerMagenta (1)
Move tile M ouse to Move Duke
Yellow (0)
Magenta (1)
if
ïntP anî *L
Root Pane'
Content P a n r l
^ _ ^ ^ - L a y e r e d Pane
Menu Bar
■«-Glass Pane
Internal frame Layered pane Root pane
10. Atomic Components
Atomic Components - Các điẻu khiển cơ bản
[Monday
vầ
IE Cl
«
heck 1
|) Radio 2
OK
Monday Theme Help
Buttons Combo box
January
February
▲
i?metal etri-ffi r
March I?Organic Ctrl-0 I
April ▼ □metal2 ctfi-2
List Menu Slider
|George Washington
[Thomas Jefferson
¡Benjamin Franklin
Text field
Các Atomic componéis phục vụ hiến thị và không thê
thay đổi thông tin : Label, Progress bar, Tooltip.
Các Atomic componéis hiển thị cho phép thay đổi thông
tin:color chooser, File Chooser,Table, Text, Tree.
11.
12. cấu trúc một ứng dụng GUI
GUI
J J T ld m e
JPanel
JButton
JLabel
Cẩu trúc bẽn trong
13. Một ứng dụng mẫu
import javax.swing.*;
class hello {
public static void main(String[] args){
JFrame f = new JFrame(“title”);
JPanel p = new JPanel();
JButton b = new JButton(“press me”);
p.add(b); // add button to panel
f.setContentPane(p); // add panel to frame
f.show();
}
}
14. Layout Managers
null
Không có layout,
lập trình viên phải tự
xác định x,y,w,h
BorderLayout
n
w e
c
s
FlowLayout
Từ trái sang phảit
Trên xuống dưới
CardLayout
GridLayout
GridBagLayout
JButton
I
15. Thiết lập Layout Manager
LayoutManager layMan = new XLayout();
container.setLayout(layMan);
XLayout:
• FlowLayout
• GridLayout
• BorderLayout
• CardLayout
• GridBagLayout