如何在Swing中创建屏蔽文本字段
说明
以下示例展示了如何在Swing中创建屏蔽文本字段。
我们正在使用以下 API。
-
JFormattedTextField : 创建格式化文本字段。
-
MaskFormatter : 创建格式化程序以仅允许传递给 MaskFormatter 的模式中指定的字符。
代码示例
package com.yiidian;
import javax.swing.*;
import javax.swing.text.MaskFormatter;
import java.awt.*;
import java.text.ParseException;
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 个数字。以下是控制字符的模式列表。
序号 | 描述 |
---|---|
1 | #
任何数字。 |
2 | '
转义字符,转义特殊格式字符。 |
3 | U
任何字符。将转换为大写。 |
4 | L
任何字符。将转换为小写。 |
5 | A
任何字符或数字。 |
6 | ?
任何字符。 |
7 | *
任何事物。 |
8 | H
任何十六进制字符(0-9、af 或 AF)。 |
热门文章
优秀文章