Công nghệ Java - 15

4.1.2. Mô tả container trong Swing

Container là thành phần chủ chốt của SWING GUI. Một Container cung cấp một không gian, là nơi đặt một thành phần. Một Container chính là một Component có thêm khả năng để thêm các thành phần khác vào.

Khi xem xét về Container, cần chú ý các điểm sau:

Các lớp con của Container được gọi là Container. Một số ví dụ về các lớp con của Container là JPanel, JFrame và JWindow.

Container chỉ có thể thêm Component vào chính nó

Một layout mặc định có mặt trong mỗi container. Layout này có thể bị ghi đè bởi sử dụng phương thức setLayout().

Bảng bên dưới sẽ trình bày các loại container.


Loại

Tên

Miêu tả


Top level


JApplet, JDialog, JFrame

Những thành phần này 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,JScollPane, JTabbedPane, JToolBar


Container phổ biến


Special Purpose

JInternalFrame, JLayeredPane, JRootPane


Container đặc biệt

Có thể bạn quan tâm!

Xem toàn bộ 232 trang tài liệu này.

4.2. Quản lý Layout

Layout là sự bố trí sắp xếp các thành phần bên trong Container theo cách thức nhất định. Để xử lý một số lượng thành phần lớn với kích cỡ, hình dạng khác nhau và bố trí theo cách mong muốn thì việc sử dụng các LayoutManager là cần thiết.

4.2.1. BorderLayout

Lớp BorderLayout sắp xếp các thành phần phù hợp với 5 miền: đông, tây, nam, bắc và trung tâm. Nó là layout mặc định của Frame hoặc Window. Mỗi khu vực (miền) chỉ có thể chứa một thành phần và mỗi thành phần trong mỗi khu vực được nhận diện bởi các hằng tương ứng:

public static final int NORTH public static final int SOUTH public static final int EAST public static final int WEST

public static final int CENTER

Cú pháp để khai báo lớp Java.awt.BorderLayout là:

public class BorderLayout

extends Object

implements LayoutManager2, Serializable

Các hàm tạo của lớp BorderLayout:

BorderLayout(): Xây dựng một Border Layout mới, ở đó giữa các thành phần là không có khoảng cách.

BorderLayout(int hgap, int vgap): Xây dụng một Border Layout với các khoảng cách gap theo chiều dọc và ngang đã xác định giữa các thành phần.

Các phương thức của lớp BorderLayout:


STT

Phương thức và miêu tả


1

void addLayoutComponent (Component comp, Object constraints)

Thêm thành phần comp vào layout, sử dụng đối tượng Constraint cho trước

2

void addLayoutComponent (String name, Component comp)

Thêm thành phần comp vào layout, liên kết nó với chuỗi xác định bởi tên.

3

int getHgap()

Trả về khoảng cách theo chiều ngang giữa các thành phần

4

float getLayoutAlignmentX(Container parent) Trả về căn chỉnh theo trục x

5

float getLayoutAlignmentY(Container parent) Trả về căn chỉnh theo trục y

6

int getVgap() Trả về khoảng cách theo chiều dọc giữa các thành phần

7

void invalidateLayout(Container target)

Vô hiệu hóa layout, chỉ rằng nếu Layout Manager đã lưu thông tin thì nên loại bỏ

8

void layoutContainer(Container target)

Bố trí tham số container sử dụng Border Layout này

9

Dimension maximumLayoutSize(Container target)

Trả về kích cỡ các chiều tối đa cho layout, cung cấp các thành phần trong target đã cho.

10

Dimension minimumLayoutSize(Container target)

Xác định kích cỡ tối thiểu cho target sử dụng layout manager

11

void removeLayoutComponent(Component comp) Xóa thành phần comp đã cho từ Border Layout

String toString() Trả về một biểu diễn chuỗi Border Layout này

12

4.2.2. GridLayout

GridLayout sắp xếp các thành phần trong một lưới hình chữ nhật. Một thành phần được hiển thị trong một hình chữ nhật.

Cú pháp khai báo cho lớp java.awt.GridLayout là:

public class GridLayout extends Object

implements LayoutManager, Serializable

Các hàm tạo của lớp GirdLayout Manager:

GridLayout(): Tạo một gridlayout mặc định là một cột

GridLayout(int rows, int columns): Tạo một grid layout với số hàng và cột đã cho, và không có khoảng cách giữa các thành phần.

GridLayout(int rows, int columns, int hgap, int vgap): Tạo một grid layout với các hàng và cột đã cho cùng với khoảng cách theo chiều dọc và ngang xác định trước.

Các phương thức của lớp GirdLayout Manager


STT

Phương thức và mô tả


1

void layoutContainer(Container parent)

Bố trí container đã cho bởi sử dụng layout này.


2

Dimension minimumLayoutSize(Container parent) Xác định kích cỡ tối thiểu của tham số container


3

Dimension preferredLayoutSize(Container parent) Xác định kích cỡ được ưu tiên của tham số container .


4

void removeLayoutComponent(Component comp) Xóa thành phần đã cho từ layout.


5

void setColumns(int cols) Thiết lập số cột trong layout


6

void setHgap(int hgap)

Thiết lập khoảng cách theo chiều ngang giữa các thành phần


7

void setRows(int rows)

Thiết lập số hàng trong layout


8

void setVgap(int vgap)

Thiết lập khoảng cách theo chiều dọc giữa các thành phần

4.2.3. GirdBagLayout

GridBagLayout là một lớp quản lý layout linh động. Đối tượng của GridBagLayout căn chỉnh các thành phần theo chiều dọc, ngang hoặc theo baseline mà không yêu cầu các thành phần phải cùng kích cỡ.

Cú pháp khai báo cho lớp java.awt.GridBagLayout là:

public class GridBagLayout extends Object

implements LayoutManager2, Serializable

4.2.4. GroupLayout

GroupLayout nhóm các thành phần theo cấu trúc thứ bậc để đặt chúng trong một Container. Cú pháp khai báo cho lớp javax.swing.GroupLayout là:

public class GroupLayout extends Object

implements LayoutManager2

Hàm tạo GroupLayout(Container host) tạo một GroupLayout cho container đã cho.

4.3. Text Input

4.3.1. TextFields

JTextField là một đối tượng cho phép người dùng nhập một dòng văn bản. Thường dùng để nhập dữ liệu với các thông tin ngắn.

Các hàm khởi tạo JTextField  JTextField Tạo mới 1 JTextField  JTextField Document 1

Các hàm khởi tạo JTextField

JTextField(): Tạo mới 1 JTextField

JTextField(Document doc, String text, int columns): Tạo 1 JTextField sử dụng mô hình lưu trữ văn bản với đoạn text và số cột (coloumns)

JTextField(int columns): Tạo JTextField trống với độ rộng là columns

JTextField(String text): Tạo JTextField với text cho trước

JTextField(String text, int columns): Tạo JTextField với text và độ rộng cho trước.

Một số phương thức thường dùng

getText(): Lấy dữ liệu (chuỗi) từ JTextField

setText(): Đặt dữ liệu cho JTextField

requestFocus(): Đặt con trỏ nhập liệu đến JTextField được chọn

setEditable(boolean edit): Cho phép nhập dữ liệu cho JTextfield hay không

4.3.2. Label

Lớp (class) JLabel trong Java Swing được sử dụng để hiển thị một dòng văn bản, người dùng chỉ có thể đọc mà không thể thao tác trực tiếp.

Các hàm khởi tạo Constructor Mô tả Jlabel Tạo một nhãn không có hình ảnh và 2

Các hàm khởi tạo

Constructor

Mô tả

Jlabel ()

Tạo một nhãn không có hình ảnh và tiêu đề là rỗng.

Jlabel (String text)

Tạo một nhãn (JLabel) với văn bản (text) được chỉ định.

Jlabel (Icon icon)

Tạo một nhãn (JLabel) với biểu tượng (icon) được chỉ định.

Jlabel (String text, int horizontalAlignment)

Tạo một nhãn (JLabel) với văn bản (text) và horizontalAlignment được chỉ định.

Jlabel (Icon i, int horizontalAlignment)

Tạo ra một nhãn (JLabel) với biểu tượng (icon) và horizontalAlignment được chỉ định.

Jlabel (String text, Icon i, int horizontalAlignment)

Tạo ra một nhãn (JLabel) với văn bản (text) và biểu tượng (icon) và horizontalAlignment được chỉ định.

Các phương thức của lớp Jlabel

STT

Tên phương thức

1

void setText(String text)

Thiết lập (set) văn bản (text) cụ thể cho JLabel.

String getText()

Lấy văn bản (text) của JLabel.

3

void setHorizontalAlignment(int alignment) Đặt alignment cho label trên trục x.

4

int getHorizontalAlignment()

Lấy alignment của label trên trục x.

5

Icon getIcon()

Phương thức getIcon được sử dụng để lấy biểu tượng (icon) của JLabel.

2

4.3.3. Password Fields

Lớp JPasswordField trong Java Swing được kế thừa lớp (class) JTextField, là một thành phần văn bản chuyên để nhập mật khẩu.

Các hàm tạo của lớp JPasswordField Constructor Mô tả JPasswordField Tạo ra 3

Các hàm tạo của lớp JPasswordField:

Constructor

Mô tả

JPasswordField()

Tạo ra JPasswordField với text là null.

JPasswordField(int columns)

Tạo ra JPasswordField với text là null và columns được chỉ định.

JPasswordField(String text)

Tạo ra JPasswordField với text được chỉ định.

JPasswordField(String text, int columns)

Tạo ra JPasswordField với text và columns được chỉ định.

Các phương thức của lớp JPasswordField được kế thừa từ lớp JTextField

4.3.4. TextAreas

Lớp JTextArea trong Java Swing kế thừa lớp JTextComponent là một vùng hiển thị văn bản nhiều dòng, cho phép người dùng thao tác và chỉnh sửa.

Hàm tạo của lớp JTextArea Constructor Mô tả JTextArea Tạo một JTextArea với văn 4

Hàm tạo của lớp JTextArea


Constructor

Mô tả

JTextArea()

Tạo một JTextArea với văn bản (text) hiển thị rỗng.

JTextArea(String text)

Tạomột JTextArea với văn bản (text) được chỉ định.

JTextArea(int row, int column)

Tạo một JTextArea với hàng và cột được chỉ định.

JTextArea(String text, int row, int column)

Tạo một JTextArea văn bản (text) hiển thị theo hàng và cột được chỉ định.

Các phương thức của lớp JTextArea

STT

Tên phương thức

1

void setRows (int rows)

Thiết lập số lượng hàng được chỉ định trong JTextArea.

2

void setColumns (int cols)

Thiết lập số lượng cột được chỉ định trong JTextArea.

3

void setFont (Font f)

Thiết lập font được chỉ định trong JTextArea.

4

void insert (String s, int position)

Chèn văn bản vào vị trí được chỉ định trong JTextArea.

5

void append (String s)

Nối văn bản được chỉ định trong JTextArea.

4.3.5. Scroll Panes

Trong Swing, mặc định TextArea không có thanh cuộn. Nếu muốn có thanh cuộn phải đặt Textarea vào trong một scroll pane.

Cú pháp khai báo:

TextArea textArea = new TextArea();

JScrollPane scrollPane = new JScrollPane(textArea);

ScollPane sẽ quản lý giao diện của TextArea. Thanh cuộn sẽ tự động xuất hiện nếu có nhiều văn bản hơn vùng mà TextArea có thể hiển thị và nó sẽ biến mất nếu văn bản bị xóa đi vừa với vùng hiển thị. Thanh cuộn được tự động xử lý bởi ScrollPane, chương trình không phải xử lý sự kiện xuất hiện thanh cuộn. Để thêm thanh cuộn vào một component chỉ cần thêm vào trong một ScrollPane.

4.4. Các thành phần lựa chọn

4.4.1. Checkboxes

Lớp JCheckBox trong Java Swing kế thừa từ class JToggleButton, được sử dụng để chọn đúng hoặc sai, chọn hay không chọn về một vấn đề nào đó.

Hàm tạo của lớp Jcheckbox Constructor Mô tả JcheckBox Tạo một JCheckBox với trạng 5

Hàm tạo của lớp Jcheckbox

Constructor

Mô tả

JcheckBox ()

Tạo một JCheckBox với trạng thái là không được chọn, không có văn bản (text) và biểu tượng hiển thị.

JchechBox (String s)

Tạo một JCheckBox với trạng thái là không được chọn, với văn bản (text) hiển thị được chỉ định.

JcheckBox (String text, boolean selected)

Tạo một JCheckBox với trạng thái (selected) và văn bản (text) hiển thị được chỉ định.

JcheckBox (Action a)

Tạo một JcheckBox các thuộc tính được lấy ra từ Action.

4.4.2. Radio Button

Lớp (class) JRadioButton trong Java Swing kế thừa từ class JToggleButton được sử dụng để tạo ra một nút radio. JRadioButton được sử dụng trong trường hợp chọn một trong nhiều tùy chọn

..... Xem trang tiếp theo?
⇦ Trang trước - Trang tiếp theo ⇨

Ngày đăng: 29/01/2024