- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
JFormattedTextField
JFormattedTextField
Formatted text fields提供了一个定义其合法输入内容的方法。JFormattedTextField继承在JTextField,在其基础上添加了一个Formatter。
JFormattedTextField扩展了JTextField,添加了对格式化任意值的支持,以及一旦用户编辑了文本就检索特定对象的支持。例如使用JFormattedTextField来编辑日期:
JFormattedTextField ftf = new JFormattedTextField();
ftf.setValue(new Date());
一旦创建了JFormattedTextField,可以通过添加PropertyChangeListener的方式来侦听编辑更改,并且使用属性名value来侦听PropertyChangeEvent。
JFormattedTextField允许配置在失去焦点时应该采取的措施,可能的值有:
JFormattedTextField.REVERT 回复显示以匹配getValue,可能失去当前的编辑内容。
JFormattedTextField.COMMIT 提交当前值。如果AbstractFormatter不认为所编辑的值是合法值,则抛出ParseException,然后不更改该值并保留已编辑的值。
JFormattedTextField.COMMIT_OR_REVERT 和COMMIT相似,但如果该值不合法,则其行为类似于REVERT。
JFormattedTextField.PERSIST 不执行任何操作,不获取新的AbstractFormatter也不更新该值。
COMMIT_OR_REVERT是默认值。
JFormattedTextField允许焦点离开,即使当前编辑的值是无效的也是如此。要做JFormattedTextField处于无效编辑状态时锁定焦点,可以附加一个InputVerifier。例如:
public class FormattedTextFieldVerifier extends InputVerifier {
public boolean verify(JComponent input) {
JFormattedTextField ftf = (JFormattedTextField)input;
AbstractFormatter formatter = ftf.getFormatter();
if ( formatter != null)
{
String text = tft.getText();
try {
formatter.stringToValue(text);
return true;
}
catch ( ParseException pe) {
return false;
}
}
}
return true;
}
public boolean shouldYieldFocus(JComponent input)
{
return verify(input);
}
public abstract static class JFormattedTextField.AbstractFormatter extends Object implements Serializable
JFormattedTextField所使用的AbstractFormatter实例,用于处理从Object到String和从String到Object的转换。AbstractFormatter可以强制执行编辑策略,或者知道策略的执行,或者以任何适合于强制执行所需策略的方式操作JFormattedTextField。
AbstractFormatter一次只能在一个JFormattedTextField中处于激活状态。JFormattedTextField准备好使用install时即调用它,完成调用后uninstall。希望安装其他状态的子类硬挨重写install并适当地通知超类。
子类必须重写转换方法stringToValue和valueToString。子类可以重写getActions、getNavigationFilter和getDocumentfilter,以便以特定的方式限制JFormattedTextField。
使用Swing提供的formatter,可以轻易的为日期和数字建立formatted text field。另外一种formatter可以使用一个字符罩来规定在field中的每一个可以输入字符的位置。例如,可以为电话号码定义一个特殊的格式,如(xx)x-xx-xx-xx-xx。
使用spinner来替代JFormatt
您可能关注的文档
最近下载
- Unit 6 Understanding ideas Longji Rice Terraces 课件-高中英语外研版(2019)必修第一册.pptx VIP
- 护理学导论(高职)教学教案.docx
- 2024年部编新改版语文六年级上册全册月考试题含答案(共4套).docx
- 饮用水和环境卫生公众健康宣教及风险沟通答案-2024年全国疾控系统“大学习”活动.docx VIP
- 新型冠状病毒、甲型和乙型流感病毒全预混冻干多重荧光PCR检测试剂盒及其检测方法发明专利.pdf VIP
- 基金会捐赠协议.doc VIP
- XX市智慧安居工程(一期)报警求助综合受理指挥分系详细设计方案.doc VIP
- 《乡土中国》 第11篇 《长老统治》.ppt
- [知识]职业生涯人物访谈(教师).pdf VIP
- 第六单元整本书阅读《西游记》课件 2024—2025学年统编版语文七年级上册.pptx VIP
文档评论(0)