Merlin的魔力: Swing 的新JFormattedTextField组件[Java编程]
本文“Merlin的魔力: Swing 的新JFormattedTextField组件[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
Java 2 尺度版(J2SE),版本 1.4 为可用的 GUI 元素调色板增添了 2 个新的 Swing 组件: JSpinner 和 JFormattedTextField .在 Merlin 的魔力专栏的第一篇我们就介绍了 JSpinner 组件;我们目前将要探究 JFormattedTextField .
固然 JFormattedTextField 组件看起来与 JTextField 类似,但是它的行为与 JSpinner 完好差别.在最简单的情形下,您可认为电话号码供应一个近似“(###)###-####”的输入掩码,它不会承受任何不遵守那个格局的输入.在较为复杂的情形下,既有显示格局化器,也有输入格局化器.比方:编辑时,缺省日期格局化器答应按照光标的位置在可用的月或日之间转动.
当利用 JFormattedTextField 时,可承受的输入大概是由掩码明确指定,大概是由组件的一个值指定.在后一种情形下,组件用工厂(Factory)计划情势来查找指定值类的缺省格局化器. DefaultFormatterFactory 组件供应预先安装的日期、数字、 java.text.Format 子类的格局化器以及其他一切应有尽有的格局化器.
让我们看看若何利用组件.
配置可承受的输入
屏蔽输入普通是通过利用 MaskFormatter 类的一个实例配置的.在 javax.swing.text 包中发现, MaskFormatter 通过利用一系列字符指定可承受的输入来工作.该系列 8 个字符中的每一个都代表输入中的一个字符,下面的列表指出了这一点:
# | 一个数字 |
? | 一个字母 |
A | 一个字母或数字 |
* | 肆意字符 |
U | 一个字母,小写字符映射到与它们等效的大写字符上 |
L | 一个字母,大写字符映射到与它们等效的小写字符上 |
H | 一个十六进制数字(A-F、a-f、0-9) |
' | 用来转义别的一个掩码字符 |
除了 MaskFormatter 之外,您还可以用来自 java.text 软件包的 DateFormat 和 NumberFormat 类指定输入格局.清单 1 显示了一些大概的格局.
清单 1. 定义输入掩码
// Four-digit year, followed by month name and day of month,
// each separated by two dashes (--)
DateFormat format =
new SimpleDateFormat("yyyy--MMMM--dd");
DateFormatter df = new DateFormatter(format);
// US Social Security number
MaskFormatter mf1 =
new MaskFormatter("###-##-####");
// US telephone number
MaskFormatter mf2 =
new MaskFormatter("(###) ###-####");
一旦您指定了输入格局,您随后就要将格局化器传入 JFormattedTextField 构造器中,以下所示:
JFormattedTextField ftf1 = new
JFormattedTextField(df);
还有别的一些可配置的选项,它们取决于您利用的格局化器.比方:用 MaskFormatter ,您能用 setPlaceholderCharacter(char) 设置占位符字符.别的,关于日期域,假如您将域初始化为某个值使一个用户知道什么样的输入格局是可承受的,这样将会有所帮忙.
以上是“Merlin的魔力: Swing 的新JFormattedTextField组件[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |