Java核心技术(高级Swing)三文本构件

本文深入探讨Java Swing中的文本组件,包括使用Document接口的PlainDocument和StyleDocument,以及文本修改跟踪。此外,介绍了JFormattedTextField的格式化输入、过滤器和校验器的应用。同时,讲解了JSpinner组件的使用,如数字、日期、列表值的微调,并展示了如何自定义微调器模型。
摘要由CSDN通过智能技术生成

所有文本构件都可以绘制和编辑存储在实现了Document接口的类的模型对象中的数据。JTextField和JTextArea构件使用的是

PlainDocument,该构件只储存普通文本的行序列,而不进行任何格式化。JEditorPane可以展示和编辑各种格式的样式文本,特别

是HTML,StyleDocument接口描述了对样式、字体和颜色的额外需求,而HTMLDocument类实现了这个接口。

文本构件中的修改跟踪

应该让文档来通知我们数据发生变化,方法是在文档上安装文档监听器DocumentListener。

格式化的输入框

JFormattedTextField类,当格式化文本框失去焦点时,格式器会检查用户输入的文本字符串。失去焦点的默认行为称为提交或回复。

过滤器:防止用户键入非法字符。过滤器可以拦截插入命令,并修改字符串或放弃插入操作。通过过滤机制避免所有无效字符串是不可

的。

校验器:在任意JComponent上附着,可以就无效输入对用户发出警告。必须扩展InputVerifier类并定义verify方法。如果该构件失

焦点,那么校验器就会被查询。如果校验器报告该构件无效,那么该构件就会立即重新获得焦点,用户就被强制要求在进行其他输入之前先

正刚输入的内容。

标准格式器:NumberFormat类、DateFormat类、DefaultFormatter类、MaskFormatter类。

定制格式器:需要扩展DefaultFormatter类,并覆盖String valueToString(Object value)、

Object stringToValue(String text)。

JSpinner构件

JSpinner是包含一个文本框以及两个在文本框旁边的小按钮的构件。当点击按钮时,文本框的值就会递增或递减。微调器中的值可以是

数字、日期、列表中的值,或是更为普遍的情况,即前驱和后继可以确定的任何值序列。可以用微调器迭代任何值集合,只需将一个

SpinnerListModel传递给JSpinner构造器即可。通过定义自已的微调器模型,可以在微调器中显示任意的序列,需要扩展

AbstractSpinnerModel类并定义Object getValue();void setValue(Object value);Object getNextValue();

Object getPreviousVaule().

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值