Java 中 JTextField 和 JTextArea 有什麼區別?


Java 中 **JTextField** 和 **JTextArea** 的主要區別在於,**JTextField** 允許在 GUI 應用程式中輸入 **單行文字**,而 **JTextArea** 允許在 GUI 應用程式中輸入 **多行文字**。

JTextField

  • **JTextField** 是最重要的元件之一,允許使用者以 **單行格式** 輸入文字值。
  • 當我們在 **JTextField** 中輸入內容時,它會生成一個 **ActionListener** 介面。
  • **JTextComponent** 是 **JTextField** 的超類,它提供了一組 **JTextField** 使用的常用方法。
  • JTextField 類中的重要方法有 **setText()、getText()、setEnabled()** 等。

示例

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

  • **JTextArea** 是一個 **多行文字元件**,用於顯示文字或允許使用者輸入文字。
  • **JTextArea** 會生成一個 **CaretListener** 介面。
  • **JTextComponent** 是 **JTextArea** 的超類,它提供了一組 **JTextArea** 使用的常用方法。
  • **JTextArea** 類中的重要方法有 **setText()、append()、setLineWrap()、setWrapStyleWord()、setCaretPosition()** 等。

示例

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);
   }
}

輸出

更新於: 2020年2月7日

4K+ 次檢視

啟動你的 職業生涯

透過完成課程獲得認證

開始學習
廣告