Giới thiệu Swing Control
Mỗi UI (User Interface) bao gồm ba mặt chính:
Các phần tử UI: : Đó là các phần tử nhìn thấy chủ yếu mà người dùng cuối cùng nhìn thấy và tương tác với. GWT cung cấp rất nhiều các phần tử đa dạng từ cơ bản tới nâng cao. Chúng ta sẽ giới thiệu chúng trong chương này.
Layout: Chúng định nghĩa cách các phần tử UI nên được tổ chức trên màn hình và cung cấp đối tượng L&F (là viết tắt của Look and Feel) cuối cùng tới GUI (Graphical User Interface). Phần này sẽ được trình bày trong chương Layout.
Hành vi: Đó là các sự kiện xảy ra khi người dùng tương tác với các phần tử UI. Phần này sẽ được trình bày trong chương Xử lý sự kiện.
Mỗi SWING control kế thừa các thuộc tính từ cấu trúc thứ bậc của lớp Component.
Lớp Component trong Java Swing
Lớp Component là lớp abstract cho các điều khiển trên UI mà không có menu của SWING. Component biểu diễn một đối tượng với sự biểu diễn đồ họa. Sau đây là cú pháp để khai báo lớp:
public abstract class Component extends Object implements ImageObserver, MenuContainer, Serializable
Lớp Component này có một Constructor có tên là protected Component(). Nó được sử dụng để tạo một Component mới.
Lớp Component bao gồm các trường sau:
static float BOTTOM_ALIGNMENT: Hằng này dễ dàng sử dụng cho getAlignmentY.
static float CENTER_ALIGNMENT: Hằng này dễ dàng sử dụng cho getAlignmentY và getAlignmentX.
static float LEFT_ALIGNMENT: Hằng này dễ dàng sử dụng cho getAlignmentX.
static float RIGHT_ALIGNMENT: Hằng này dễ dàng sử dụng cho getAlignmentX.
static float TOP_ALIGNMENT: Hằng này dễ dàng sử dụng cho getAlignmentY.
Lớp Container trong Java Swing
Đây là lớp cha của các Container của AWT. Đối tượng Container có thể chứa các thành phần AWT khác. Sau đây là cú pháp để khai báo lớp:
public class Container extends Component
Lớp Container có một constructor là Container() để tạo một Container mới.
Lớp JComponent trong Java Swing
Là một lớp cơ sở cho tất cả các thành phần UI. Để sử dụng một thành phần Swing mà kế thừa từ JComponent, thành phần đó phải ở trong một cấu trúc mà có root là Swing Container ở cấp độ cao nhất. Sau đây là cú pháp khai báo lớp:
public abstract class JComponent extends Container implements Serializable
Lớp JComponent này có một constructor mặc định là JComponent().
Lớp java.awt.JComponent bao gồm các trường sau:
protected AccessibleContext accessibleContext: AccessibleContext được liên kết với JComponent này.
protected EventListenerList listenerList: Một danh sách các Event Listener cho thành phần này.
static String TOOL_TIP_TEXT_KEY: Là comment để hiển thị khi con trỏ di chuyển qua thành phần, nó còn được biết với các tên gọi như value tip, flyover help.
protected ComponentUI ui: Ủy nhiệm L&F cho thành phần này.
static int UNDEFINED_CONDITION: Hằng được sử dụng bởi một số APIs, có ý nghĩa là không có điều kiện nào được xác định.
static int WHEN_ANCESTOR_OF_FOCUSED_COMPONENT: Hằng được sử dụng cho registerKeyboardAction, có nghĩa là lệnh nên được triệu hồi khi thành phần đang nhận là một cha của thành phần được focus hoặc là chính thành phần được focus của nó.
static int WHEN_FOCUSED: Hằng được sử dụng cho registerKeyboardAction, có nghĩa là lệnh nên được triệu hồi khi thành phần có focus.
static int WHEN_IN_FOCUSED_WINDOW: Hằng được sử dụng cho registerKeyboardAction, có nghĩa là lệnh nên được triệu hồi khi thành phần đang nhận là trong cửa sổ có focus hoặc là chính thành phần được focus của nó.
Các phần tử Swing UI
Bảng dưới đây liệt kê danh sách các control được sử dụng phổ biến nhất trong khi thiết kế GUI bởi sử dụng SWING.
STT | Control & Miêu tả |
---|---|
1 | Lớp JLabel Một đối tượng JLabel là một thành phần để đặt text vào trong một Container |
2 | Lớp JButton Lớp này tạo một button đã được gán nhãn |
3 | Lớp JTable Lớp JTable được sử dụng để hiển thị dữ liệu trên các ô của bảng hai chiều |
4 | Lớp Graphics Lớp này cung cấp nhiều phương thức để lập trình đồ họa |
5 | Lớp JColorChooser Một JColorChooser cung cấp một pane gồm các control được thiết kế để cho phép một người dùng thao tác và lựa chọn màu |
6 | Lớp JCheck Box Một JCheckBox là một thành phần đồ họa mà có thể trong trạng thái on (true) hoặc off (false) |
7 | Lớp JRadioButton Lớp JRadioButton là một thành phần đồ họa mà có thể trong trạng thái on (true) hoặc off (false) trong một nhóm |
8 | Lớp JList Một thành phần JList biểu diễn cho người dùng một danh sách các item |
9 | Lớp JComboBox Một thành phần JComboBox biểu diễn cho người dùng một menu các lựa chọn |
10 | JTextField Một đối tượng JTextField là một thành phần text cho phép chỉnh sửa một dòng text đơn |
11 | Lớp JTextArea Một đối tượng JTextArea là một thành phần text cho phép sửa đổi một text có nhiều dòng |
12 | Lớp ImageIcon Một ImageIcon control là một trình triển khai của Icon Interface mà tô màu các Icon từ Image |
13 | Lớp JScrollbar Một Scrollbar control biểu diễn một thành phần scroll bar để cho người dùng khả năng lựa chọn từ trong một dãy các giá trị |
14 | Lớp JOptionPane JOptionPane cung cấp tập hợp các dialog box chuẩn mà gợi ý người dùng về một giá trị hoặc thông báo cho họ một cái gì đó |
15 | JFileChooser Một JFileChooser control biểu diễn một dialog window từ đó người dùng có thể lựa chọn một file |
15 | Lớp JProgressBar Thanh tiến trình hiển thị phần trăm hoàn thành tác vụ đang diễn ra |
17 | Lớp JSlider Một JSlider cho phép người dùng lựa chọn một giá trị từ một dãy cụ thể |
18 | Lớp JSpinner Một JSpinner là một trường input dòng đơn, cho phép người dùng lựa chọn một số hoặc một giá trị đối tượng từ dãy đã qua sắp xếp |
Một số chương trình ứng dụng đơn giản sử dụng Java Swing
Đã có app VietJack trên điện thoại, giải bài tập SGK, SBT Soạn văn, Văn mẫu, Thi online, Bài giảng....miễn phí. Tải ngay ứng dụng trên Android và iOS.
Theo dõi chúng tôi miễn phí trên mạng xã hội facebook và youtube:Các bạn có thể mua thêm khóa học JAVA CORE ONLINE VÀ ỨNG DỤNG cực hay, giúp các bạn vượt qua các dự án trên trường và đi thực tập doanh nghiệp với Java. Khóa học có giá chỉ 400K, nhằm ưu đãi, tạo điều kiện cho sinh viên cho thể mua khóa học.
Nội dung khóa học gồm 16 chuơng và 100 video cực hay, học trực tiếp tại https://www.udemy.com/tu-tin-di-lam-voi-kien-thuc-ve-java-core-toan-tap/ Bạn nào có nhu cầu mua, inbox trực tiếp chị Thu, trợ lý anh Tuyền để hỗ trợ thanh toán qua mã QR ngân hàng Việt Nam, fb: https://www.facebook.com/Thule.59
Anh Tuyền, tác giả khóa học, là cựu sinh viên chương trình đào tạo kĩ sư tài năng của đại học Bách Khoa Hà Nội với hơn 5 năm kinh nghiệm đi làm thực tế doanh nghiệp và cũng là Founder website vietjack.com, web giáo dục phổ biến nhất Việt Nam hiện tại (năm 2024). Java cũng là ngôn ngữ lập trình dễ đi xin việc nhất hiện tại, với mức lương cao, hãy nâng cao kiến thức IT của bản thân mình vì một Việt Nam giàu mạnh.
Loạt bài hướng dẫn của chúng tôi dựa một phần trên nguồn tài liệu của: Tutorialspoint.com
Bài học Java phổ biến tại vietjack.com: