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