Lớp JTextField trong Java Swing là một thành phần cho phép sửa đổi một dòng text đơn. Dưới đây là cú pháp khai báo của lớp javax.swing.JTextField:
public class JTextField extends JTextComponent implements SwingConstants
Nội dung chính
Lớp này kế thừa các phương thức từ các lớp sau:
javax.swing.text.JTextComponent
javax.swing.JComponent
java.awt.Container
java.awt.Component
java.lang.Object
Lớp JTextField có trường static String notifyActio. Trường này là tên của action để gửi thông báo rằng các nội dung của trường này đã được chấp nhận.
Các constructor của lớp JTextField trong Java Swing
JTextField(): Xây dựng một TextField mới.
JTextField(Document doc, String text, int columns): Xây dựng một JTextField mới mà sử dụng mô hình lưu trữ text đã cho và số cột đã cho.
JTextField(int columns): Xây dựng một TextField mới và trống với số cột đã cho.
JTextField(String text): Xây dựng một TextField mới được khởi tạo với text đã cho.
JTextField(String text, int columns): Xây dựng một TextField mới được khởi tạo với text và các cột đã cho.
Các phương thức được sử dụng phổ biến của lớp JTextField trong Java Swing
STT | Phương thức & Mô tả |
---|---|
1 | void setActionCommand(String command) Thiết lập chuỗi lệnh được sử dụng cho action event |
2 | void setColumns(int columns) Thiết lập số cột trong TextField này, và sau đó làm mất hiệu lựa layout đó |
3 | void setDocument(Document doc) Liên kết editor với một tài liệu text |
4 | void setFont(Font f) Thiết lập font hiện tại |
5 | void setHorizontalAlignment(int alignment) Thiết lập căn chỉnh ngang cho text |
6 | void setScrollOffset(int scrollOffset) Thiết lập scroll offset, giá trị pixel |
7 | protected void actionPropertyChanged(Action action, String propertyName) Cập nhật trạng thái của textfield trong phản hồi các thay đổi của thuộc tính trong action liên kết với |
8 | void addActionListener(ActionListener l) Thêm action listener đã cho để nhận các action event từ textfield này |
9 | protected void configurePropertiesFromAction(Action a) Thiết lập các thuộc tính của textfield này để kết nối chúng trong Action đã cho |
10 | protected PropertyChangeListener createActionPropertyChangeListener(Action a) Tạo và trả về PropertyChangeListener mà chịu trách nhiệm nghe các thay đổi từ Action đã cho và cập nhật các thuộc tính thích hợp |
11 | protected Document createDefaultModel() Tạo trình triển khai mặc định của model để được sử dụng tại sự xây dựng nếu không được cung cấp tường minh |
12 | Action[] getActions() Gọi danh sách lệnh cho trình soạn thảo Editor |
13 | void postActionEvent() Xử lý action event xảy ra trên textfield này bằng cách gửi chúng tới bất cứ đối tượng ActionListener đã được đăng ký nào |
14 | void removeActionListener(ActionListener l) Xóa action listener đã cho để nó không bao giờ nhận action event từ textfield này nữa |
15 | void scrollRectToVisible(Rectangle r) Cuốn trường này sang trái hoặc phải |
16 | void setAction(Action a) Thiết lập Action cho ActionEvent source |
Chương trình ví dụ lớp JTextField
package vn.viettuts.swing; import java.awt.FlowLayout; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JPasswordField; import javax.swing.JTextField; public class JTextFieldExam { private JFrame mainFrame; private JLabel headerLabel; private JLabel statusLabel; private JPanel controlPanel; public JTextFieldExam(){ prepareGUI(); } public static void main(String[] args) { JTextFieldExam swingDemo = new JTextFieldExam(); swingDemo.showTextFieldDemo(); } private void prepareGUI() { mainFrame = new JFrame("Vi du JTextField - Java Swing"); mainFrame.setSize(400, 300); mainFrame.setLayout(new GridLayout(3, 1)); mainFrame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent windowEvent) { System.exit(0); } }); headerLabel = new JLabel("", JLabel.CENTER); statusLabel = new JLabel("", JLabel.CENTER); statusLabel.setSize(350, 100); controlPanel = new JPanel(); controlPanel.setLayout(new FlowLayout()); mainFrame.add(headerLabel); mainFrame.add(controlPanel); mainFrame.add(statusLabel); mainFrame.setVisible(true); } private void showTextFieldDemo() { headerLabel.setText("Control in action: JTextField"); JLabel namelabel = new JLabel("User ID: ", JLabel.RIGHT); JLabel passwordLabel = new JLabel("Password: ", JLabel.CENTER); final JTextField userText = new JTextField(6); final JPasswordField passwordText = new JPasswordField(6); JButton loginButton = new JButton("Login"); loginButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { String data = "Username " + userText.getText(); data += ", Password: " + new String(passwordText.getPassword()); statusLabel.setText(data); } }); controlPanel.add(namelabel); controlPanel.add(userText); controlPanel.add(passwordLabel); controlPanel.add(passwordText); controlPanel.add(loginButton); mainFrame.setVisible(true); } }
Chạy chương trình trên cho kết quả như sau: