Java: JFormattedTextField


Khóa học qua video:
Lập trình Python All Lập trình C# All SQL Server All Lập trình C All Java PHP HTML5-CSS3-JavaScript
Đăng ký Hội viên
Tất cả các video dành cho hội viên

JFormattedTextField tương tự như JTextField khi xuất hiện. Nó chấp nhận các ký tự dựa trên việc sử dụng bộ định dạng. Các bộ định dạng khác nhau được phép là số, ngày tháng và tiền tệ.

Trong trường hợp ta sử dụng JTextField trong ứng dụng GUI thì ta sẽ phản hồi lại việc kiểm tra giá trị được điền vào TextField với định dạng thích hợp. Còn JFormattedTextField sẽ thuận tiện hơn để xác nhận tính hợp lệ của dữ liệu mà không cần phải có bất kỳ dòng code kiểm tra nào.

JFormattedTextField
JFormattedTextField

JFormattdTextField với bộ định dạng số

Để sử dụng JFormattedTextField với bộ định dạng số thì ta thực hiện các bước sau:

- Khai báo một đối tượng của lớp NumberFormat.

- Khai báo một đối tượng của lớp JFormattedTextField.

- Sử dụng phương thức tĩnh NumberFormat.getNumberInstance() để tạo thể hiện của NumberFormat.

- Tạo thể hiện của JFormattedTextField và truyền thể hiện của NumberFormat dưới dạng đối số tới nó..

- Thêm thể hiện của JFormattedTextField tới bộ chứa.

Đoạn mã sau thể hiện cách tạo JFormattedTextField với bộ định dạng số và thêm nó vào frame.

NumberFormat numberFormat;

JFormattedTextField txfNumber;

JFrame frmDetails;

// Tạo thể hiện của đối tượng định dạng số

numberFormat = NumberFormat.getNumberInstance();

// Tạo trường văn bản có định dạng với bộ định dạng số

txfNumber = new JFormattedTextField(numberFormat);

// Rồi thêm vào frame

frmDetails.getContentPane().add(txfNumber);

JFormattdTextField với bộ định dạng ngày tháng

Các bước sử dụng JFormattedTextField với bộ định dạng ngày tháng như sau:

- Khai báo một đối tượng của lớp DateFormat.

- Khai báo một đối tượng của lớp JFormattedTextField.

- Sử dụng phương thức tĩnh DateFormat.getDateInstance() để tạo một thể hiện của lớp DateFormat.

- Tạo một thể hiện của JFormattedTextField và truyền thể hiện của DateFormat dưới dạng đối số tới phương thức tĩnh ở trên.

- Thêm thể hiện của JFormattedTextField vào bộ chứa.

Đoạn mã sau thể hiện cách tạo JFormattedTextField với bộ định dạng ngày tháng.

DateFormat dateFormat;

JFormattedTextField txfDate;

JFrame frmDetails;

...

// Tạo một thể hiện của đối tượng dateFormat

dateFormat = DateFormat.getDateInstance();

// Tạo trường văn bản có định dạng với bộ định dạng ngày tháng

txfDate = new JFormattedTextField(dateFormat);

// Rồi thêm vào frame

frmDetails.getContentPane().add(txfDate);

JFormattdTextField với bộ định dạng tùy chỉnh

Để tạo trường văn bản có định dạng với bộ định dạng tùy chỉnh thì ta sử dụng lớp MaskFormatter. MaskFormatter tạo một bộ định dạng để xác định chính xác những ký tự hợp lệ cho mỗi vị trí của trường văn bản có định dạng.

Bảng sau đây liệt kê các ký tự mask.

Ký tự mask Mô tả
# Một số bất kỳ
` Ký tự escape cho chuỗi escape
U Ký tự bất kỳ, được chuyển thành ký tự in hoa.
L Ký tự bất kỳ, được chuyển thành ký tự in thường.
A Ký tự hoặc số bất kỳ.
? Ký tự đơn bất kỳ.
* Một hoặc nhiều ký tự.
H Ký tự hệ 16 (0-9, a-f, or A-F).

Đoạn mã sau mô tả cách tạo một trường văn bản có định dạng để chấp nhận 9 số.

JFormattedTextField txfAmount;MaskFormatter formatter;
try
{
formatter = new MaskFormatter(“###,###,###”);
}
catch (ParseException ex)
{
System.err.println(“Exception: “+ ex.getMessage());
System.exit(0);
}
txfAmount = new JFormattedTextField(formatter);

Ví dụ đầy đủ về ứng dụng cho JFormattedTextField xin xem tại bài viết ví dụ FormattedTextfieldDemo.

» Tiếp: Cách sử dụng ButtonGroup
« Trước: Cách sử dụng Text Component
Khóa học qua video:
Lập trình Python All Lập trình C# All SQL Server All Lập trình C All Java PHP HTML5-CSS3-JavaScript
Đăng ký Hội viên
Tất cả các video dành cho hội viên
Copied !!!