Hotline: 0919 365 363; Email: daotao@r2s.edu.vn

Giới thiệu về Swing

Giới thiệu về Swing

Kiến thức hữu ích

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
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, …

giới thiệu về swing

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ạiTênMiêu tả
Top LevelJApplet, JDialog, JFrameMộ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 PurposeJPanel, JScrollPane, JTabbedPane, JToolBarContainer phổ biến
Special PurposeJInternalFrame, JLayeredPane, JRootPaneContainer đặ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, …

giới thiệu về swing

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.

giới thiệu về swing

Hình ảnh bên dưới là kết quả thu được sau khi nhấn nút “Finish”

giới thiệu về swing

Một số thuộc tính thường được dùng đối với thành phần JFrame

Thuộc tínhMiêu tả
titleTiêu đề màn hình
defaultCloseOperationThiết lập xử lý khi người dùng chọn nút X ở góc trên bên phải
iconImageThiết lập icon ở góc trên bên trái của màn hình
resizableCho phép điều chỉnh kích thước màn hình hay không
sizeKí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.

swing

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

giới thiệu về swing

Thay đổi nội dung hiển thị: chuột phải vào JLabel -> chọn Edit Text

giới thiệu về swing

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ênMiê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

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

giới thiệu về swing

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ênMiê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

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ênMiê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.

JCheckBox

Bảng bên dưới liệt kê 2 phương thức quan trọng trong JCheckBox

TênMiê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

giới thiệu về swing

Gắn JRadioButton vào Button Group

Gắn JRadioButton vào Button Group

JComboBox trong giới thiệu về Swing

giới thiệu về swing
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.

giới thiệu về swing

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.

ComponentsListenersMethods
Button, Menu, ListActionListenervoid actionPerformed(ActionEvent ae)
ScrollbarAdjustmentListenervoid adjustmentValueChanged(AdjustmentEvent ae)
Check box, ListItemListenervoid itemStateChanged(ItemEvent ie)
MouseMouseListener MouseMotionListenervoid 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)
WindowWindowListenervoid 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).

 NetBeans

Và kết quả nhận được

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ử

giới thiệu về swing

Yêu cầu:

  1. 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.
  2. 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

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

đăng ký tài khoản

Yêu cầu:

  1. 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.
  2. 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.
  3. 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

quản lý thông tin sinh viên

Yêu cầu:

  1. 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.
  2. 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

Alert: You are not allowed to copy content or view source !!