Giới thiệu về Swing
Giới thiệu về Swing
Giới thiệu về Swing là gì? Swing là một trong những library phổ biến trong giới lập trình. Được thiết kế theo mô hình MVC, thư viện này có gì mà người mới học cần lưu ý?
Hãy cùng tìm hiểu những thông tin, cú pháp để hiểu hơn về Swing này trong bài viết dưới đây cùng R2S nhé!
Tổng quan về container trong giới thiệu về Swing
Giới thiệu về Swing. Java Foundation Classes (JFC) được giới thiệu trong phiên bản 2.0 (Java Development Kit – JDK 2.0), hỗ trợ lập trình giao diện đồ hoạ (Graphical Interface) với thư viện Swing.
Swing nó được thiết kế theo mô hình MVC (Model View Controller), hỗ trợ công nghệ gọi là “Pluggable-Look-And-Feel” nó cho phép các thành phần giao diện có thể được hiển thị trên bất kỳ hệ điều hành nào như Windows, Mac OS, Linux, …
Trong Java, container là một lớp mà chứa các đối tượng khác và cung cấp các phương thức và thuộc tính để quản lý và truy cập vào các đối tượng này. Container là một cấu trúc dữ liệu dùng để lưu trữ và tổ chức các đối tượng. Các container phổ biến trong Java
Loại | Tên | Miêu tả |
Top Level | JApplet, JDialog, JFrame | Một trong những thành phần này phải được xuất hiện trong bất ký ứng dụng Swing và được sử dụng để chứa các thành phần khác. |
General Purpose | JPanel, JScrollPane, JTabbedPane, JToolBar | Container phổ biến |
Special Purpose | JInternalFrame, JLayeredPane, JRootPane | Container đặc biệt |
JFrame trong giới thiệu về Swing
JFrame là top level container và được sử dụng để chứa các đối tượng khác như JPanel, JTabbedPane, JToolBar, …
Tạo JFrame bằng cách sử dụng NetBeans
Sử dụng project hiện có hoặc tạo ra project mới -> sử dụng dụng package hiện có hoặc tạo ra package mới -> chuột phải -> chọn New -> chọn JFrame Form -> nhập tên class tại Class Name -> chọn Finish để kết thúc.
Hình ảnh bên dưới là kết quả thu được sau khi nhấn nút “Finish”
Một số thuộc tính thường được dùng đối với thành phần JFrame
Thuộc tính | Miêu tả |
title | Tiêu đề màn hình |
defaultCloseOperation | Thiết lập xử lý khi người dùng chọn nút X ở góc trên bên phải |
iconImage | Thiết lập icon ở góc trên bên trái của màn hình |
resizable | Cho phép điều chỉnh kích thước màn hình hay không |
size | Kích thước màn hình |
JPanel trong giới thiệu về Swing
JPanel vừa là container vì nó được sử dụng để chứa các thành phần khác, vừa là thành phần (component) vì được chứa trong một JFrame.
Không giống như JFrame, JPanel không có title và không có các nút điều khiển (minimum button, maximum button, close button), đặc biệt JPanel không thể sử dụng độc lập. Đầu tiên chúng ta thêm các thành phần vào JPanel, sau đó thêm JPanel vào top level như JFrame.
JLabel trong giới thiệu về Swing
JLabel là một thành phần để hiển thị văn bản tĩnh (static text). Một JLabel cũng có thể hiển thị icon hoặc cả hai. Hai phương thức quan trọng của JLabel là setText(String label) dùng để thiết lập nội dung cho JLabel và phương thức String label = getText() dùng để lấy nội dung của JLabel
Tạo JLabel trong NetBeans
Thay đổi nội dung hiển thị: chuột phải vào JLabel -> chọn Edit Text
JTextField trong giới thiệu về Swing
JTextField cho phép người dùng nhập và chỉnh sửa một dòng văn bản. Ba phương thức quan trọng trong JTextField
Tên | Miêu tả |
String text = getText(); | Lấy nội dung trong JTextField |
setText(String value); | Thiết lập nội dung trong JTextField |
setEditable(boolean editable) | Thiết lập cho phép chỉnh sửa nội dung hay không. Nếu editable = true chúng ta được phép chỉnh sửa. Ngược lại thì chúng ta không được phép chỉnh sửa. |
Tạo JTextField trong NetBeans
Thay đổi nội dung của JTextField: chuột phải và JTextField -> chọn Edit Text
Thay đổi tên đối tượng (tên được sử dụng để truy cập các phương thức và thuộc tính của JTextField): chuột phải vào JTextField -> chọn Change Variable Name
JTextArea trong giới thiệu về Swing
JTextArea cho phép chúng ta nhập và chỉnh sửa nhiều dòng văn bản. Các phương thức thường được sử dụng với JTextField được mô tả ở bảng bên dưới
Tên | Miêu tả |
String text = getText(); | Lấy nội dung trong JTextArea |
setText(String value); | Thiết lập nội dung trong JTextArea |
setEditable(boolean editable) | Thiết lập cho phép chỉnh sửa nội dung hay không. Nếu editable = true, chúng ta được phép chỉnh sửa. Ngược lại thì chúng ta không được phép chỉnh sửa. |
copy() và cut() | Chuyển phần văn bản được chọn từ JTextArea vào clipboard |
paste() | Chuyển nội dung từ clipboard vào JTextArea |
Tạo JTextArea trong NetBeans
JPasswordField trong giới thiệu về Swing
JPasswordField giống như JTextField ngoại trừ nội dung trong JPasswordField sẽ chuyển thành dấu hoa thị (*). Một số phương thức thường dùng được miêu tả ở bảng sau
Tên | Miêu tả |
String text = getText(); | Lấy nội dung trong JPasswordField |
setText(String value); | Thiết lập nội dung trong JPasswordField |
setEchoChar() | Thiết lập ký tự hiển thị |
Tạo JPasswordField trong NetBeans
JCheckBox trong giới thiệu về Swing
Một thành phần có 2 trạng thái thì chọn (checked) và không chọn (unchecked). Trạng thái mặc định của JCheckBox là unchecked. Người dùng có thể lựa chọn cùng lúc nhiều lựa chọn.
Bảng bên dưới liệt kê 2 phương thức quan trọng trong JCheckBox
Tên | Miêu tả |
boolean isSelected() | Trả về true nếu JCheckBox đang được chọn và false nếu JCheckBox không được chọn |
setSelected(boolean state) | Thiết lập chọn hoặc bỏ chọn |
JRadioButton trong giới thiệu về Swing
JRadioButton cũng giống JCheckBox ngoại trừ tại một thời điểm chỉ cho phép chọn một. Khi tạo nhiều JRadioButton, chúng ta cần phải kết hợp với Button Group để ràng buộc thao tác chọn của người dùng (tại một thời điểm chỉ có một JRadioButton được chọn)
Tạo JRadioButton trong NetBeans
Gắn JRadioButton vào Button Group
JComboBox trong giới thiệu về Swing
JComboBox là thành phần cho phép người dùng được lựa chọn từ danh sách thả xuống (dropdown list). Hình bên dưới là cách tạo JComboBox và thêm nội dung hiển thị. Kết quả thu được sau khi chạy ứng dụng
JButton trong giới thiệu về Swing
JButton là một thành phần hình chữ nhật với một văn bản hoặc biểu tượng hoặc cả hai làm nhãn và có thể phát sinh sự kiện khi người dùng nhấn chuột.
Xử lý sự kiện trong giới thiệu về Swing
Sự kiện chính là sự phản ứng của chương trình khi người dùng tương tác với chương trình. Ví dụ khi người dùng nhấn chuột vào nút (JButton), chọn hoặc không chọn JCheckBox/JRadioButton,… Và khi một sự kiện được phát sinh thì chương trình đó phải thực hiện xử lý sự kiện đó. Bảng bên dưới liệt kê những sự kiện thường gặp nhất.
Components | Listeners | Methods |
Button, Menu, List | ActionListener | void actionPerformed(ActionEvent ae) |
Scrollbar | AdjustmentListener | void adjustmentValueChanged(AdjustmentEvent ae) |
Check box, List | ItemListener | void itemStateChanged(ItemEvent ie) |
Mouse | MouseListener MouseMotionListener | void mouseClicked(MouseEvent me) void mouseEntered(MouseEvent me) void mouseExited(MouseEvent me) void mousePressed(MouseEvent me) void mouseReleased(MouseEvent me) void mouseDragged(MouseEvent me) void mouseMoved(MouseEvent me) |
Window | WindowListener | void windowActivated(WindowEvent we) void windowClosed(WindowEvent we) void windowClosing(WindowEvent we) void windowDeactivated(WindowEvent we) void windowDeiconified(WindowEvent we) void windowIconified(WindowEvent we) void windowOpened(WindowEvent we) |
Đăng ký và xử lý sự kiện trong NetBeans
Chọn chế độ Design -> nhấp chuột phải lên thành phần muốn xử lý sự kiện -> chọn Events -> lựa chọn loại sự kiện muốn xử lý. Bên dưới đây là ví dụ về đăng ký sự kiện cho nút nhấn Cancel (Sự kiện click).
Và kết quả nhận được
ài tập thực hành trong bài giới thiệu về swing:
Bài thực hành số 1: Xây dựng ứng dụng cho máy tính điện tử
Yêu cầu:
- First number và Second number bắt buộc người dùng phải nhập thông tin. Nếu người dùng chưa nhập thông tin, ứng dụng sẽ hiển thị thông báo.
- Khi chọn các nút “+”,” –“, “*”, “/” thực hiện xử lý tính tổng, tính hiệu, tính tích, tính thương và hiển thị kết quả vào Result.
Gợi ý: Để hiển thị thông báo đến người dùng thì chúng ta sẽ sử dụng lớp JOptionPane
Cú pháp
<JOptionPane.showMessageDialog(Component parentComponent, Object message);>
Ví dụ
<JOptionPane.showMessageDialog(this, "Please input your name");>
Kết quả khi chạy ứng dụng
Bài thực hành số 2: Xây dựng ứng dụng cho đăng ký tài khoản
Yêu cầu:
- Username và Password bắt buộc nhập thông tin. Nếu người dùng chưa nhập thông tin, ứng dụng sẽ hiển thị thông báo.
- Khi người dùng nhấn vào nút “Sign up”, để kiểm tra thông tin mật khẩu nhập tại ô Password và ô Confirm có giống nhau hay không? Nếu không giống nhau ở 2 lần nhập thì ứng dụng sẽ hiển thị thông báo và yêu cầu người dùng nhập lại.
- Khi người dùng nhấn vào nút “Cancel”, đóng ứng dụng.
Bài thực hành số 3: Xây dựng ứng dụng cho quản lý thông tin sinh viên
Yêu cầu:
- Khi người dùng nhấn vào nút “Validate”, yêu cầu người dùng nhập name, address, chọn hobby và sex. Nếu người dùng chưa nhập thông tin hoặc chưa chọn thông tin, ứng dụng sẽ hiển thị thông báo.
- Khi người dùng nhấn vào nút “Reset”, thiết lập nội dung hiển thị của các thành phần trên màn hình giống như lúc ban đầu.
Kết luận bài giới thiệu về swing
Như vậy, qua bài viết Giới thiệu về Swing trên đây, R2S chúng tôi đã giúp bạn hiểu được tổng quan về container, JFrame, JPanel, JLabel, JTextField, JTextArea, JPasswordField, JCheckBox và nhiều kiến thức khác
Đừng quên bỏ lỡ bất cứ bài viết nào của chúng tôi để học thêm nhiều kiến thức hữu ích về lập trình giao diện trong lập trình java nhé.
Bài viết gốc được đăng tải tại giasutinhoc.vn