Swing 示例 - 创建屏蔽文本字段
以下示例展示了如何在基于 Swing 的应用程序中创建和显示屏蔽文本字段。
我们使用以下 API。
JFormattedTextField − 创建格式化文本字段。
MaskFormatter − 创建格式化程序以仅允许传递给 MaskFormatter 的模式中指定的字符。
示例
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.LayoutManager;
import java.text.ParseException;
import javax.swing.JFormattedTextField;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.text.MaskFormatter;
public class SwingTester {
public static void main(String[] args) {
createWindow();
}
private static void createWindow() {
JFrame frame = new JFrame("Swing Tester");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
createUI(frame);
frame.setSize(560, 200);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
private static void createUI(final JFrame frame){
JPanel panel = new JPanel();
LayoutManager layout = new FlowLayout();
panel.setLayout(layout);
JLabel zipLabel = new JLabel("Zip Code");
JFormattedTextField zipTextField = null;
try {
zipTextField = new JFormattedTextField(
new MaskFormatter("#####"));
zipTextField.setColumns(5);
} catch (ParseException e) {
e.printStackTrace();
}
zipLabel.setLabelFor(zipTextField);
panel.add(zipLabel);
panel.add(zipTextField);
frame.getContentPane().add(panel, BorderLayout.CENTER);
}
}
输出
这里我们使用"#####"作为模式,表示文本字段中只允许输入数字,不能输入其他字符。并且我们不能输入超过 5 个数字。以下是控制字符的模式列表。
| Sr. No. | 字符 &描述 |
|---|---|
| 1 | #
任意数字。 |
| 2 | '
转义字符,用于转义特殊格式字符。 |
| 3 | U
任意字符。将转换为大写。 |
| 4 | L
任意字符。将转换为小写。 |
| 5 | A
任何字符或数字。 |
| 6 | ?
任何字符。 |
| 7 | *
任何内容。 |
| 8 | H
任何十六进制字符(0-9、a-f 或 A-F)。 |
swingexamples_formatted_textfields.html

