Đặc biệt, bắt đầu phiên bản JDK 1.3 thì bạn có thể sử dụng cả văn bản đơn giản và cả HTML text trong button, label, menu items. Nhưng đối với button thì rất cản trở, còn với Label thì nó rất thuận tiện: JTextField(int cols): khởi tạo JtextField với số cột quy định. JTextField(String text, int cols): khởi tạo Jtextfield với dòng text và số cột quy định.
Trang 1Trường ĐH Công Nghệ Thông Tin
Đại Học Quốc Gia Hồ Chí Minh
Thuyết trình giữa kỳ môn Java
Nhóm thực hiện: Phạm Hải Triều 08520422 Nguyễn Hoàng Đức 08520099 Giảng Viên: Ths.Huỳnh Ngọc Tín
TEXT INPUT
Trang 2 API: javax.swing.JTextField
Constructor:
JTextField(int cols): khởi tạo JtextField với số
cột quy định.
JTextField(String text, int cols): khởi tạo
Jtextfield với dòng text và số cột quy định.
Và sau đó setText():
textField.setText("Hello!");
1.JTEXTFIELD
Trang 3Methods:
-void setText(String t)
-String getText()
-void setEditable(boolean b): chỉnh sửa nội dung.
-setColumns()
-Chú ý:
Sau khi dùng setColums, ta gọi lại hàm revalidate để hợp lệ
lại component trong 1 container.
textField.setColumns(10);
panel.revalidate();
1.JTEXTFIELD(TT)
Trang 4 Để bỏ đi khoảng trắng đầu và cuối chuỗi, bạn
có thể sử dụng hàm strim()
String text = textField.getText().trim();
Để chọn Font chữ cho textField thì sử dụng
hàm setFont.
textField.setFont(new Font("Arial",
Font.BOLD, 12));
2.LABEL AND LABELING
Trang 5 API: javax.swing.JLabel
JLabel(String text)
JLabel(Icon icon)
JLabel(String text, int align)
JLabel(String text, Icon icon, int align)
Align : SwingConstants (LEFT, CENTER,
or RIGHT)
2.LABEL AND LABELING(TT)
Trang 6- Đặc biệt, bắt đầu phiên bản JDK 1.3 thì
bạn có thể sử dụng cả văn bản đơn giản và
cả HTML text trong button, label, menu
items
- Nhưng đối với button thì rất cản trở, còn với Label thì nó rất thuận tiện:
label = new
JLabel("<html><b>Required</b>entry:
</html>");
2.LABEL AND LABELING(TT)
Trang 7 setText(String text): quy định chuỗi văn bản.
setIcon(Icon icon): quy định Icon.
getLength(): đưa ra chiều dài của chuỗi text.
2.LABEL AND LABELING(TT)
Trang 8- Để theo dõi sự thay đổi của textField :
textField.getDocument().addDocumentListene r(listener);
- Khi text thay đổi thì 1 trong các phương thức DocumentListener sẽ được gọi:
void insertUpdate(DocumentEvent event) void removeUpdate(DocumentEvent event) void changedUpdate(DocumentEvent event)
3.CHANGE TRACKING IN TEXTFIELD
Trang 9API:javax.swing.JPasswordField
Contructor:
JPasswordField(String text, int columns)
Methods:
void setEchoChar(char echo)
char[] getPassword()
4.PASSWORD FIELD
Trang 10 Để chứa các trường văn bản Có diện tích lớn hơn, chứa được nhiều dòng.
Contructor:
textArea = new JTextArea(8, 40); // 8 lines
of 40 columns each
5.TEXTFIELD AREAS
Trang 11textArea.setLineWrap(true); // long lines are wrapped
- Kết hợp với thanh cuộn:
textArea = new JTextArea(8, 40);
JScrollPane scrollPane = new JScrollPane(textArea);
Các Methods khác:
void setColumns(int cols)
void setRows(int rows)
void append(String newText) //thêm vào text sau chuỗi text có
sẵn
5.TEXTFIELD AREAS(TT)
Trang 12 Integer Input
JFormattedTextField intField = new
JFormattedTextField(NumberFormat.getInte gerInstance());
- Bạn có thể đặt default value với
setValue method
intField.setValue(new Integer(100));
6.FORMAT INPUT
Trang 13- Cho phép người dùng nhập 1 loại ký tự nhất định
- Bạn cần phải cài đặt tài liệu được lọc
- Override phương thức getDocumentFilter của lớp định dạng, thông qua 1 đối tượng của lớp đó để định dạng JformatedTextField
Các văn bản số nguyên sử dụng InternationalFormatter được khởi
tạo với NumberFormat.getIntegerInstance().
JFormattedTextField intField = new JFormattedTextField(new InternationalFormatter
(NumberFormat.getIntegerInstance())
{
protected DocumentFilter getDocumentFilter()
{
6.FORMAT INPUT(TT)
Trang 14 Verifiers
Báo cho người dùng biết là “bạn đã nhập không hợp lệ” và Focus lại TextInput đó nếu người dùng Focus vào 1 component khác Và yêu cầu người dùng nhập lại
Một verifiers được extends từ InputVerifiers Phương thức isEditValid của JFormaterTextField được trả về True nếu định dạng đúng
class FormattedTextFieldVerifier extends InputVerifier
{
public boolean verify(JComponent component)
{
JFormattedTextField field = (JFormattedTextField) component;
return field.isEditValid();
}
}
6.FORMAT INPUT(TT)
Trang 15Others Standard Formatters
NumberFormat có 1 số static methods:
getNumberInstance: định dạng số
getCurrencyInstance: định dạng tiền tệ
getPercentInstance: định dạng %
JFormattedTextField currencyField = new
JFormattedTextField(NumberFormat
.getCurrencyInstance());
6.FORMAT INPUT(TT)
Trang 16Static Methods DateFormat class:
getDateInstance
getTimeInstance
getDateTimeInstance
JFormattedTextField dateField = new
JFormattedTextField(DateFormat.getDateInstance());
Chuyển từ định dạng medium sang sort
DateFormat.getDateInstance(DateFormat.SHORT)
Feb 24, 2002 2/24/02
6.FORMAT INPUT(TT)
Trang 17 MaskFormatter:
Định dạng những dạng nhập dữ liệu bằng các ký tự được quy định: Vd:
Như muốn định dạng kiểu số (192-168-1-30)
new MaskFormatter(###-###-#-##)
MaskFormatter Symbols
6.FORMAT INPUT(TT)
Trang 18 Custom Formatter:
Định nghĩa ra Format riêng tùy theo các
trường hợp.
VD: 4 byte của địa chỉ IP:
135.78.65.12
Bạn không thể dùng MaskFormatter vì 1 byte thì giới hạn để không quá 255 mà không dùng
số lượng các chữ số để quy định.
6.FORMAT INPUT(TT)
Trang 19Q&A