What are the differences between JTextField and JTextArea in Java?
JTextField和JTextAreain Java之间的主要区别在于,JTextField允许在GUI应用程序中输入单行文本,而JTextAreaallow允许在GUI应用程序中输入多行文本。
JTextField
- JTextFeldis是最重要的组件之一,它允许用户以单行格式输入文本值。
- 当我们尝试在其中输入一些输入时,JTextField将生成一个ActionListener接口。
- JTextComponent是JTextField的超类,它提供JTextfield使用的一组通用方法。
- JTextField类中的重要方法是setText(),getText(),setEnabled()等。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | 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()等。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | 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); } } |
输出量