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

Tạo Digital Clock

Hiển thị hình ảnh

Tạo Edit Menu cho Notepad

Tạo Open Dialog Box