Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Khác biệt giữa JTextField và JTextArea trong Java

Khác biệt chính: JTextField cho phép nhập một dòng văn bản trong ứng dụng GUI, trong khi JTextArea cho phép nhập nhiều dòng văn bản.

JTextField

  • Thành phần quan trọng cho phép người dùng nhập giá trị văn bản theo định dạng một dòng.
  • Tạo ra interface ActionListener khi nhập dữ liệu.
  • Lớp cha JTextComponent cung cấp các phương thức chung cho JTextField.
  • Phương thức quan trọng: setText(), getText(), setEnabled().

Ví dụ JTextField

import javax.swing.*; 
import java.awt.*; 

public class JTextFieldTest { 
    public static void main(String[] args) { 
        final JFrame frame = new JFrame("JTextField Demo"); 
        JLabel lblFirstName = new JLabel("First Name:"); 
        JTextField tfFirstName = new JTextField(20); 
        lblFirstName.setLabelFor(tfFirstName); 
        JLabel lblLastName = new JLabel("Last Name:"); 
        JTextField tfLastName = new JTextField(20); 
        lblLastName.setLabelFor(tfLastName); 
        JPanel panel = new JPanel(); 
        panel.setLayout(new FlowLayout()); 
        panel.add(lblFirstName); 
        panel.add(tfFirstName); 
        panel.add(lblLastName); 
        panel.add(tfLastName); 
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
        frame.setSize(300, 100); 
        frame.getContentPane().add(panel, BorderLayout.CENTER); 
        frame.setVisible(true); 
    } 
}

JTextArea

  • Thành phần văn bản đa dòng (multi-line) để hiển thị hoặc cho phép nhập văn bản.
  • Tạo ra interface CaretListener.
  • Lớp cha JTextComponent cung cấp các phương thức chung cho JTextArea.
  • Phương thức quan trọng: setText(), append(), setLineWrap(), setWrapStyleWord(), setCaretPosition().

Ví dụ JTextArea

import java.awt.*; 
import javax.swing.*; 
import javax.swing.event.*; 

public class JTextAreaTest { 
    public static void main(String args[]) { 
        JFrame frame = new JFrame("JTextArea Example"); 
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
        JTextArea textArea = new JTextArea(); 
        JScrollPane scrollPane = new JScrollPane(textArea); 
        frame.add(scrollPane, BorderLayout.CENTER); 
        
        CaretListener listener = new CaretListener() { 
            public void caretUpdate(CaretEvent caretEvent) { 
                System.out.println("Dot: " + caretEvent.getDot()); 
                System.out.println("Mark: " + caretEvent.getMark()); 
            } 
        }; 
        textArea.addCaretListener(listener); 
        frame.setSize(250, 150); 
        frame.setVisible(true); 
    } 
}

Bảng so sánh tóm tắt

Đặc điểmJTextFieldJTextArea
Số dòngMột dòng (single-line)Nhiều dòng (multi-line)
Listener chínhActionListenerCaretListener
Cuộn (scroll)Không hỗ trợ sẵnCần JScrollPane
Phương thức đặc biệtsetText, getTextappend, setLineWrap, setWrapStyleWord
Phù hợp choTên, email, mật khẩu, tìm kiếmMô tả, ghi chú, biên soạn văn bản