请问在textfield中如何控制键盘的输入,就是说在按下某个按键后,如何不在这个键值反映到文本框中,同时不把文本框中原来的值给清除掉?

解决方案 »

  1.   

    编写键盘事件代码如下:
    1,取得调用textfield的getText()方法,取得当前文本框的内容,保存到一个String a中。
    2,判断当前按下的键值,如果不是想显示的,则调用textfield的setText()方法,将a重新放回去,如果是想显示的,则将a+"按下的字符"放回去。但愿我没理解错你的意思!!
      

  2.   

    有没有什么事件可以控制键盘的输入,比如如果输入了非数字的键,就让它直接return
      

  3.   

    改写document的方法public void insertString(int offs, String str, AttributeSet a)
    throws BadLocationException 
    从你的说法感觉你对于事件机制的理解还有些问题,当然这样的问题的人不少。
    事件,一定是在某些动作发生之后,才会触发了某个事件。
    如果你不希望字符放到里面去,那么在对于字符插入的监听里面做就一切都晚了。因为这样事件正是由于已经把字符插入,才触发了事件。
    因此,建议:public void insertString(int offs, String str, AttributeSet a)
    throws BadLocationException 
    改写此方法。判断要插入的str是否包含非法字符,不包含如果要正常插入,你直接super.insertString(...),否则……你自己决定怎么玩。在事情发生之前去判断做或是不做,避免事后弥补这种拙劣的方式。