【发布时间】:2012-09-24 14:02:53
【问题描述】:
我正在编写一个基于 JTextField 的自定义控件。我的 JTextField 使用我自己的 Document 类,从 PlainDocument 派生,这样我就可以处理覆盖 insertString(...) 和 remove(...) 方法中的所有用户输入。
这就是问题所在。处理用户输入后,有时我想将插入符号移动到另一个位置。有什么更好的方法?
默认情况下 Document 将插入符号放在最后一个输入旁边。所以我试图将一个字符放在我的目标位置并立即删除它。由于某种原因,它在remove() 方法中不起作用......而且代码看起来不太好:)
感谢您的建议。
【问题讨论】:
-
当你说“重载”时,你的意思是你扩展了PlainDocument吗?当你说你重载了方法 insertString() 和 remove() 时,是不是“重载”了?或“覆盖”?重载=相同的方法名称但不同的参数。重写,意味着你扩展了一个类,并且重写了父类中存在的方法(相同名称和相同参数)?
-
对不起,是的,我的意思是我的类是从 PlainDocument 派生的,这些方法被覆盖了。
-
我正在编写一个基于 JTextField 的自定义控件 - 为什么?它应该具有哪些核心不支持的功能?请记住:所有 JSomething 都设计为按原样使用,只需根据您的需要进行配置。
标签: java swing jtextfield caret