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); } }
輸出
廣告