AWT cung cấp các thành phần khác nhau để tạo GUI: • Vật chứa Container • Thành phần Component • Trình quản lý cách trình bày Layout manager • Đồ họa Graphic và các tính năng vẽ draw..
Trang 2 Giới thiệu về GUI (Graphical user interface)
Trang 31 Giới thiệu về GUI
Trang 4 GUI cung cấp chức năng nhập liệu theo cách
thân thiện với người dùng
Các bộ thư viện: AWT, SWING, SWT…
AWT là viết tắt của Abstract Windowing
Toolkit
AWT là một bộ các lớp trong Java cho phép
chúng ta tạo GUI và chấp nhận các nhập liệu
của người dùng thông qua bàn phím và chuột.
4/25
1 Giới thiệu về GUI
Trang 5 AWT cung cấp các thành phần khác nhau để
tạo GUI:
• Vật chứa (Container )
• Thành phần (Component)
• Trình quản lý cách trình bày (Layout manager)
• Đồ họa (Graphic) và các tính năng vẽ (draw)
Trang 62 Vật chứa (Container)
Trang 7 Container là vùng mà bạn có thể đặt các thành phần giao diện của bạn vào đó
Gói java.awt chứa một lớp gọi là Container
JFrame và JPanel là các vật chứa thường được
Trang 8 JFrame: các constructor để tạo frame
• JFrame(): Tạo một frame nhưng không hiển thị
Trang 9 Ví dụ
import javax.swing.*;
public class MyFrame extends JFrame {
public MyFrame(String title){
super(title);
}
public static void main(String[] args){
MyFrame myframe=new MyFrame("Hello");
myframe.setSize(300, 200);
myframe.setVisible(true);
myframe.setDefaultCloseOperation(Jframe.EXIT_ON_ CLOSE);
}
Vật chứa (Container)
Trang 10 JPanel được sử dụng để nhóm một số các thành phần lại với nhau
• Hàm khởi tạo: JPanel()
JDialog: là một đối tượng cửa sổ con của một
Trang 113 Thành phần (Components)
Trang 12 Các lớp thành phần
12/25
3 Thành phần (Components)
Trang 17 Checkbox và RadioButton
• Checkbox()
• Checkbox(String text)
• Tạo RadioButton
CheckboxGroup cg=new CheckboxGroup();
Checkbox male=new Checkbox(“small", cg, true);
Checkbox female=new Checkbox(“medium", cg, false);
17/25
Thành phần (Components)
Trang 18 Danh sách chọn lựa (Choice List)
Choice colors=new Choice();
colors.addItem("Red");
colors.addItem("Green");
18/25
Thành phần (Components)
Trang 19 Danh sách chọn lựa (JComboBox)
String[] colors= {“Red”,”Green”,”Blue”};
JComboBox cb=new JComboBox(color);
19/25
Thành phần (Components)
Trang 204 Quản lý cách trình bày
Trang 21 Các kiểu trình bày (Layout manager)
Trang 22 Null layout: khi không sử dụng layout
manager
• setLayout(null)
• Sử dụng các hàm thiết lập vị trí
public void setSize(Dimension p)
public void setBounds(Rectangle r)
22/25
Quản lý cách trình bày
Trang 24Quản lý cách trình bày
Các thành phần được
sắp xếp trong container
từ trái sang phải, từ trên
xuống dưới theo thứ tự
chúng được đưa vào.
Trang 25Quản lý cách trình bày
public FlowLayout(int align, int hGap, int vGap)
Xây dựng một FlowLayout mới có cách sắp hàng
(alignment), khoảng trống ngang (horizontal gap), khoảng trống dọc (vertical gap) xác định Các khoảng trống giữa
các thành phần được tính bằng pixel.
public FlowLayout(int alignment)
Xây dựng một FlowLayout mới có alignment xác định,
khoảng trống ngang và dọc đều có mặc định bằng 5 pixel.
public FlowLayout()
Xây dựng một FlowLayout mới có cách sắp hàng mặc định căn giữa và khoảng trống ngang và dọc mặc định bằng 5 pixel.
Trang 26 BorderLayout Manager
• ‘BorderLayout’ là layout manager mặc định cho
‘Window’, ‘Frame’ và ‘Dialog’
• Layout này xắp xếp tối đa 5 thành phần trong một container
Trang 27Quản lý cách trình bày
BorderLayout manager chia container
thành 5 khu vực: East, South, West, North, và
Center
Trang 29Quản lý cách trình bày
Các panel đóng vai trò như các container nhỏ
để nhóm các thành phần GUI
Bạn nên đặt các thành phần GUI trong các
panel và đặt các panel trong một frame, hoặc
cũng có thể đặt panel trong panel
JPanel p = new JPanel();
p.add(new JButton("OK");
frame.getContentPanel().add(p);
Trang 31Quản lý cách trình bày
GridLayout manager sắp xếp các thành phần trong một lưới (ma trận) với số hàng
và số cột được xác định bởi constructor
Các thành phần được đặt trong lưới từ
trái sang phải, từ trên xuống dưới.
Trang 32Quản lý cách trình bày
public GridLayout(int rows,int columns)
Xây dựng một GridLayout mới có số hàng và
số cột xác định
public GridLayout(int rows, int
columns, int hGap, int vGap)
Xây dựng một GridLayout mới có số hàng và
số cột xác định, và khoảng trống ngang và dọc
giữa các thành phần được xác định
Trang 33frame p2 p1
Trang 345 Xử lý sự kiện
Trang 35 GUI là mô hình hướng sự kiện (event-driven)
• Phát sinh các sự kiện khi người dùng tương tác GUI
• Thông tin về sự kiện được chứa trong các đối tượng
thừa kế từ lớp java.awt.event hoặc
javax.swing.event
Event (sự kiện): là tương tác của người dùng
vào một đối tượng nào đó trên GUI
• Ví dụ: di chuyển chuột, nhấn phím, nhả phím tại
Button “OK”
35/25
Xử lý sự kiện
Trang 36 Đăng ký listener tại đối tượng phát sinh sự kiện
VD: button1.addActionListener(new
myListener())
Cài đặt giao diện listener thích hợp và thi hành
các phương thức của listener.
class MyListener implements
ActionListener{
public void actionPerformed(ActionEvent e) {
//code
} }
36/25
Các bước xử lý sự kiện cách 1
Trang 37public class ButtonEvent extends JFrame
implements ActionListener{
private Button btn=new Button("Click Here");
public void actionPerformed(ActionEvent e) {
Trang 38public class ButtonEvent2 extends JFrame {
private Button btn=new Button("Click Here");
public static void main(String[] arg){
ButtonEvent2 myclass=new ButtonEvent2();
Trang 39class myListener extends ActionListener {
public void actionPerformed(ActionEvent e) {
System.out.print("DDD");
}
} }
39/25
Xử lý sự kiện cách 2