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

来源:互联网 发布:软件研发部门工作总结 编辑:程序博客网 时间:2024/05/21 13:23

所有文本构件都可以绘制和编辑存储在实现了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().

原创粉丝点击