- Swing 编程示例
- 示例 - 主页
- 示例 - 环境设置
- 示例 - 边框
- 示例 - 按钮
- 示例 - 复选框
- 示例 - 组合框
- 示例 - 颜色选择器
- 示例 - 对话框
- 示例 - 编辑器窗格
- 示例 - 文件选择器
- 示例 - 格式化文本字段
- 示例 - 框架
- 示例 - 列表
- 示例 - 布局
- 示例 - 菜单
- 示例 - 密码字段
- 示例 - 进度条
- 示例 - 滚动窗格
- 示例 - 滑块
- 示例 - 旋转控件
- 示例 - 表格
- 示例 - 工具栏
- 示例 - 树
- 有用的 Swing 资源
- Swing - 快速指南
- Swing - 有用的资源
- Swing - 讨论
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 个数字。以下是控制字符的模式列表。
序号 | 字符和描述 |
---|---|
1 | # 任意数字。 |
2 | '
转义字符,转义特殊格式化字符。 |
3 | U
任意字符。将转换成大写。 |
4 | L
任意字符。将转换成小写。 |
5 | A
任意字符或数字。 |
6 | ?
任意字符。 |
7 | *
任意内容。 |
8 | H
任意十六进制字符 (0-9、a-f 或 A-F)。 |
swingexamples_formatted_textfields.htm
广告