我想要一个JTextField
(或另一个支持焦点和光标的文本输入 - 或者我应该编写自己的代码?)我希望能够完全控制立即输入。即我想忽略大多数输入并专门处理其余的输入。似乎JFormattedTextField
不是我想要的,因为它不是立即输入验证,而是当焦点丢失时。
我试图添加一个关键的监听器但是我应该如何使用它有点不明显。我似乎可以在keyPressed
中跟踪光标变化(通过键)或复制/粘贴(通过键快捷键)等事件,我可以在keyTyped
中捕获所有正常的键输入。我不确定如何捕捉光标变化或通过鼠标复制/粘贴(由于某种原因,右键单击无论如何都不起作用,因此在上下文菜单中通过鼠标复制/粘贴似乎不可能但我不确定是否可能是一个不同的问题,或者如果它应该工作,只是由于某种原因)。
我基本上想要以下处理程序:
interface InputHandler {
void addStringAt(int pos, String s);
void deleteSubString(int pos, int len);
void setFocusTo(int pos);
}
用户绝对不可能在文本框中获取任何不通过此处理程序的内容。
现在,似乎我必须关注很多特定情况(比如在一些架构上,可能有一些上下文菜单,他们可以复制/粘贴或输入内容,手动处理所有鼠标事件等)
或者另一种方式,它还涉及许多特殊处理:自己重新编码这样的输入字段。这似乎仍然是安全的,因为我可以肯定地知道没有棘手的方法用户如何绕过处理程序(我真的必须知道这一点)。顺便问一下,我该怎么做?我想扩展一个JLabel
。如何扩展它以便它可以获得焦点?
我想知道你将如何实现这样的目标。
答案 0 :(得分:1)