PlainDocument
通过组合java api,可以写出一些看起来蛮有威力的功能来了。
回过头来看《制作窗口和applet》这一章,其中中文版的第533页/英文版的第740页,例子:TextFields.java
程序实现目标:
1、输入任何字母自动转换成大写字母(使用继承自PlainDocument的类来解决);
2、输入任何文本,自动复制到第二和第三个文本框(使用继承自PlainDocument的类的事件促发来解决,即DocumentEvent);
3、计算输入框按回车的次数(文本框本身的事件ActionEvent);
由于引入了PlainDocument的事件和行为,所以程序看起来才稍微复杂一点。PlainDocument类中的insertString公共方法在继承后被覆写,赋予改变输入文本大小写的能力。要设计这样的功能也很简单,先把输入的文本储存起来,再对它执行String类的toUpperCase方法就能返回大写版的文本,然后再执行父类的insertString方法即可。