Lớp JTextField trong Java Swing



Lớp JTextField 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

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 & Miêu 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 com.vietjack.gui;
 
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
 
public class SwingControlDemo {
    
   private JFrame mainFrame;
   private JLabel headerLabel;
   private JLabel statusLabel;
   private JPanel controlPanel;

   public SwingControlDemo(){
      prepareGUI();
   }

   public static void main(String[] args){
      SwingControlDemo  swingControlDemo = new SwingControlDemo();      
      swingControlDemo.showTextFieldDemo();
   }

   private void prepareGUI(){
      mainFrame = new JFrame("Vi du Java Swing");
      mainFrame.setSize(400,400);
      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);  
   }
}

Mọi người cho thể tham gia khóa học thứ 3 của vietjackteam vào đầu tháng 07/2017 do anh Nguyễn Thanh Tuyền, admin vietjack.com trực tiếp giảng dạy tại Hà Nội. Chi tiết nội dung khóa học tham khỏa link : Khóa học Java.Các bạn học CNTT, điện tử viễn thông, đa phương tiện, điện-điện tử, toán tin có thể theo học khóa này. Khóa học cũng đưa 200 câu hỏi phỏng vấn java trên https://www.javatpoint.com/corejava-interview-questions vào nội dung để giúp các bạn dễ dàng vượt qua kì phỏng vấn

Mọi người có thể xem demo nội dung khóa học tại địa chỉ Video demo khóa học Offline

Các bạn ở xa học không có điều kiện thời gian có thể tham dự khóa Java online để chủ động cho việc học tập. Thông tin khóa học tại Khóa học Java Online trên Udemy

Follow fanpage của team https://www.facebook.com/vietjackteam/ hoặc facebook cá nhân Nguyễn Thanh Tuyền https://www.facebook.com/tuyen.vietjack để tiếp tục theo dõi các loạt bài mới nhất về Java,C,C++,Javascript,HTML,Python,Database,Mobile.... mới nhất của chúng tôi.


swing_control_trong_java_swing.jsp

Demo một bài giảng trong khóa học online tại vietjackteam.