NỘI DUNG BÀI VIẾT
Mỗi UI 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.
Nguồn video: TITV
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
Code language: PHP (php)
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
Code language: PHP (php)
Lớp Container có một constructor là Container() để tạo một Container mới.
ớ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
Code language: PHP (php)
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:
- static int WHEN_ANCESTOR_OF_FOCUSED_COMPONENT: đượ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ó.
- protected AccessibleContext accessibleContext: AccessibleContext được liên kết với JComponent 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 EventListenerList listenerList: Một danh sách các Event Listener cho thành phần này.
- protected ComponentUI ui: Ủy nhiệm L&F cho thành phần này.
- 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ó.
- static int UNDEFINED_CONDITION: đượ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.
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 ImageIconMộ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 |
Ngoài ra, vẫn còn nhiều khái niệm nâng cao khác về Java Swing mà chúng tôi chưa thể tổng hợp được hết ở trong bài viết. Bạn có thể tham khảo cũng như tra cứu thêm thông tin ở trên các trang mạng internet để có thể nắm vững hơn về Java Swing rồi.
Hy vọng rằng, với những kiến thức mà chúng tôi chia sẻ Java Swing là gì ở phía trên thì quá trình học Java Swing của bạn sẽ đơn giản hơn. Chúc bạn sớm tìm được định hướng cho bản thân cũng như lựa chọn được nghề nghiệp phù hợp với bản thân.
Happy learning!!!
Học Java Core: https://hocjava.com/category/java-core/