Professional Documents
Culture Documents
Java cung cấp các gói lập trình giao diện chính sau:
• java.awt: cung cấp các lớp cơ bản để lập trình giao diện
• javax.swing: cung cấp các lớp mới để xây dựng giao diện chương
trình dễ dàng, mềm dẻo hơn
• java.swt: được phát triển bởi IBM
Giao diện chương trình gồm cửa sổ và các thành phần điều
khiển (nút bấm, ô nhập dữ liệu...) đặt lên trên
Có thể sử dụng plug-in để hỗ trợ:
• Eclipse: WindowsBuilder Pro
• Netbean: đã tích hợp
XÂY DỰNG GIAO DIỆN
VỚI JAVA SWING
Các gói trong Java Swing
Swing cung cấp 18 gói có thể sử dụng xây dựng giao diện đồ họa
Thường sử dụng lệnh import javax.swing.* để chương trình trở nên
ngắn gọn
Ưu điểm của Swing so với AWT:
Cung cấp thêm các đối tượng mới để xây dựng giao diện đồ họa
look-and-feel: tùy biến để các thành phần giao diện của Swing nhìn
giống như các thành phần giao diện của HĐH
Hỗ trợ các thao tác sử dụng bàn phím thay chuột
Sử dụng tài nguyên hiệu quả hơn
Các thành phần của Swing
Swing Container
Top-level container:
• JFrame: sử dụng cho các cửa sổ chính của chương trình
• JApplet: sử dụng trên trình duyệt
• JDialog: cửa sổ thông báo
Secondary container: JPanel
• Thêm các đối tượng vào cửa sổ JFrame:
• Không thể thêm trực tiếp
• Phải tương tác qua Content Pane của Jframe
Đối tượng JFrame cung cấp 2 phương thức
• getContentPane() trả lại một đối tượng ContentPane thuộc lớp
Container
• setContentPane(JPanel): thiết lập nội dung cho Content Pane
JFrame
Là một cửa sổ có tiêu đề, viền, thanh menu ( tùy chọn ) và các thành
phần được chỉ định khác
Nó có thể di chuyển, thay đổi kích thước và có icon đại diện
Nó không phải là một subclass của JComponent
Nó thường được dùng để chứa các thành phần giao diện khác ( Button,
Label, … )
Một số phương thức cơ bản của JFrame
// display frame
frame.setVisible(true);
}
}
JPanel
JPanel là một container (thùng chứa) nó dùng để chứa các đối tượng
tương tự như JFrame tuy nhiên nó không phải là 1 JFrame. Dễ hiểu hơn
thì bạn có thể hình dùng ngôi nhà của chúng ta là 1 JFrame, còn phòng
ngủ, phòng khách, phòng ăn đó là các JPanel, tức là trong một JFrame
chứa các JPanel, trong mỗi JPanel lại có thể chứa các đối tượng hoặc
thậm chí là các JPanel khác.
Các thao tác JPanel
Layout trong Java Swing là sự sắp xếp các thành phần JComponent bên
trong Container theo từng phương cách nhất định. Tác vụ sắp xếp nói
trên được thực hiện tự động bởi Layout Manager.
Trong java Swing có các lớp Layout sau:
FlowLayout
BoxLayout
BorderLayout
GridLayout
FlowLayout
FlowLayout là layout mặc định trong Java Swing.
FlowLayout có cách sắp xếp các thành phần trong giao diện giống với
cách mà bạn viết trên giấy, chữ này kế tiếp chữ kia và hết hàng thì
xuống dòng.
Ví dụ đơn giản: Xây dựng ứng dụng có 7 Button, sắp xếp các JButton
trong giao diện chương trình sử dụng FlowLayout
Xem ví dụ
BoxLayout trong Java Swing
Cách sắp xếp các Component của BoxLayout. Giống như cách bạn sắp
xếp các chiếc hợp chồng lên nhau theo chiều dọc hoặc nằm kề nhau
theo chiều ngang
Hãy đi vào một Ví dụ xây dựng ứng dụng đơn giản bao gồm :
1 JLabel : ” BoxLayout Java Swing – kynangcntt.info”
1 JTextField
1 JButton : “OK”
Sử dụng BoxLayout sắp xếp giao diện chương trình
BorderLayout trong Java Swing
BorderLayout chia giao diện Container thành 5 phần Đông, Tây, Nam,
Bắc, Trung tâm và các Component được sắp xếp vào từng phần được
chia.
Ví dụ : Xây dựng ứng dụng có 5 JButton ( North, West, East, South )
Sắp xếp các thành phần trong giao diện sử dụng BorderLayout.
GridLayout trong Java Swing
GridLayout quản lý, sắp xếp các thành phần giao diện vào một bảng với
các ô bằng nhau. Giống như cách ta sắp xếp từng quân cờ vào bàn cờ
vậy 😉
JLabel() : Tạo một thể hiện JLabel không có hình ảnh và một chuỗi
rỗng
JLabel(Icon image, int horizontalAlignment) : Tạo một thể hiện JLabel
chỉ định một hình ảnh và horizontal alignment
JLabel(String text) : Tạo một thể hiện JLabel chỉ định text
JLabel(String text, Icon icon, int horizontalAlignment) : Tạo một thể
hiện JLabel chỉ định text, image và horizontal alignment
JLabel(String text, int horizontalAlignment) : Tạo một thể hiện JLabel
chỉ định text, và horizontal alignment.
JButton
JButton là một đối tượng mà cho phép chúng ta khi click chuột vào sẽ
thực hiện một việc gì đó.
Khởi tạo JButton:
JButton() : Tạo một Button không có text hoặc icon
JButton(Action a) : Tạo một Button có thuộc tính được lấy từ một
Action
JButton(Icon icon) : Tạo một Button chỉ định một icon
JButton(String text) : Tạo một Button chỉ định text
JButton(String text, Icon icon) : Tạo một Button chỉ định text và icon
;
}
}
});
private void changeTextJLabel() {
lb.setText("You are clicked JButton")
}
Tạo và bắt sự kiện vớiJButton
Cách 2: implements Interface ActionListener để phục vụ việc lắng nghe
sự kiện. Khi implements Interface này thì chúng ta cần phải Override
phương thức actionPerfomed() của nó để thực hiện việc lắng nghe sự
kiện
Xem source code ví dụ
JTextField
là một đối tượng cho phép người dùng nhập một dòng văn bản. Thường
dùng để nhập dữ liệu với các thông tin ngắn
Các hàm khởi tạo của JTextField
java.sun.com
Java docs
Java support forum : supportforum.sun.com
Java tutorial
…