代码之家  ›  专栏  ›  技术社区  ›  Albert

java:JTextField上的完全控制输入

  •  1
  • Albert  · 技术社区  · 15 年前

    我想要一个 JTextField (或者另一个支持焦点和光标的类似文本的输入——或者我应该自己编写代码?)我想完全控制即时输入。一、 我想忽略大部分的输入,并具体处理其余的。看来 JFormattedTextField

    我试图添加一个密钥侦听器,但我应该如何使用它却有点不明显。似乎我可以在 keyPressed 我可以在 keyTyped . 我不确定如何捕捉光标更改或通过鼠标进行的复制/粘贴(由于某种原因,右键单击无论如何都不起作用,因此通过鼠标在上下文菜单中复制/粘贴似乎不可能,但我不确定这是否可能是另一个问题,或者它是否应该起作用,只是由于某种原因不起作用)。

    我基本上想要像下面这样的处理程序:

    interface InputHandler {
       void addStringAt(int pos, String s);
       void deleteSubString(int pos, int len);
       void setFocusTo(int pos);
    }
    

    对于用户来说,将任何不经过这个处理程序的东西放到文本框中是绝对不可能的。

    现在,我似乎需要处理很多特定的情况(比如在一些架构上,可能有一些上下文菜单,他们可以在其中复制/粘贴或输入一些内容,手动处理所有鼠标事件,等等)。

    或者另一种方法,这也涉及到很多特殊的处理:自己重新编码这样的输入字段。这看起来还是省钱的,因为我可以肯定,没有棘手的方法,用户可以绕过处理程序(我真的必须知道这一点)。顺便问一下,我该怎么做?我想延长 JLabel . 我怎样才能扩展它,使它得到一个焦点?

    1 回复  |  直到 15 年前
        1
  •  1
  •   Community Mohan Dere    8 年前

    听起来你需要一个 DocumentFilter . 一些现有的问题将有助于解决这一问题:

    推荐文章