Java中的JTextField和JFormattedTextField有什麼區別?
JTextField 可用於普通文字,而JFormattedTextField是一個可以擴充套件JTextField的類,它可以用於為其包含的文字設定任何格式,例如電話號碼、電子郵件、日期等。
JTextField
- JTextField是最重要的元件之一,允許使用者以單行格式輸入文字值。
- 當我們嘗試在文字欄位中輸入一些內容時,JTextField可以生成一個ActionListener介面,並且每次游標(即遊標)位置改變時,它可以生成一個CaretListener介面。
- JTextField還可以生成MouseListener和KeyListener介面。
示例
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class JTextFieldTest extends JFrame {
JTextField jtf;
public JTextFieldTest() {
setTitle("JTextField Test");
setLayout(new FlowLayout());
jtf = new JTextField(15);
add(jtf);
jtf.addActionListener(new ActionListener() {
public void actionPerformed (ActionEvent ae) {
System.out.println("Event generated: " + jtf.getText());
}
});
setSize(375, 250);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
}
public static void main(String args[]) {
new JTextFieldTest();
}
}輸出
JFormattedTextField
- 格式化文字欄位是JFormattedTextField類的例項,它是JTextField的直接子類。
- JFormattedTextField就像一個普通的文字欄位,只不過它控制使用者輸入字元的有效性,並且可以與一個formatter關聯,該formatter指定使用者可以輸入的字元。
- JFormattedTextField是Format類的子類,用於構建格式化文字欄位。我們可以建立一個formatter,必要時對其進行自定義。我們可以呼叫帶Format型別引數的JFormattedTextField(Format format)建構函式。
import java.awt.*;
import javax.swing.*;
import javax.swing.text.*;
public class JFormattedTextFieldTest extends JFrame {
JFormattedTextField jftf;
MaskFormatter mf;
public JFormattedTextFieldTest() {
setTitle("JFormattedTextField Test");
setLayout(new FlowLayout());
// A phone number formatter - (country code)-(area code)-(number)
try {
mf = new MaskFormatter("##-###-#######");
mf.setPlaceholderCharacter('#');
jftf = new JFormattedTextField(mf);
jftf.setColumns(12);
} catch(Exception e) {
e.printStackTrace();
}
add(jftf);
setSize(375, 250);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String args[]) {
new JFormattedTextFieldTest();
}
}輸出
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP