我想要一个JTextField
(或其他类似文本的输入,它支持焦点和光标 - 或者我应该编码自己的?),我想要完全控制直接输入。即我想忽略大部分输入,并专门处理其他输入。看起来JFormattedTextField
不是我想要的,因为它不是在即时输入上进行验证,而是在焦点丢失时进行验证。java:JTextField上的完全控制输入
我试着添加一个按键侦听器,但它有点不明显,我应该如何使用它。看起来我可以在keyPressed
中追踪光标更改(通过按键)或复制/粘贴(通过按键快捷键),我可以捕获keyTyped
中的所有正常键输入。我不知道如何捕捉光标变化或通过鼠标进行复制/粘贴(出于某种原因,右键单击不起作用,所以通过鼠标在上下文菜单中复制/粘贴似乎是不可能的,但我不确定这是否可能是一个不同的问题,或者如果它应该工作,而不是由于某种原因)。
我基本上要像下面这样处理:
interface InputHandler {
void addStringAt(int pos, String s);
void deleteSubString(int pos, int len);
void setFocusTo(int pos);
}
它应该是绝对不可能让用户得到任何东西在未通过此处理去文本框。
现在,我似乎需要关心很多特定情况(例如在某些体系结构中,可能会有一些上下文菜单可以复制/粘贴或输入内容,手动处理所有鼠标事件等)。 )。
或者其他方式,这也涉及到很多特殊处理:自己重新编码这样的输入字段。这仍然看起来更加节省,因为我可以肯定地知道,没有任何棘手的方法可以绕过处理程序(我确实必须知道这一点)。顺便说一句,我该怎么做?我想扩展一个JLabel
。我怎样才能扩展它,使它可以得到重点?
我想知道你将如何实现这样的东西。