自定义文本字段java swing只接受数字和其他一些字符

时间:2015-04-01 09:43:17

标签: java swing jtextfield

我在swing应用程序中有一个JTextField,它只能接受数字和逗号。我使用以下代码处理了这个问题。

String lstAllowedCharsForSlotList=new String(new char[]{'1','2','3','4','5','6','7','8','9','0','\b','\t',','});

@Override
public void keyPressed(KeyEvent e) {
    if(lstAllowedCharsForSlotList.indexOf(e.getKeyChar())==-1)
        e.consume();
}
@Override
public void keyReleased(KeyEvent e) {
    if(lstAllowedCharsForSlotList.indexOf(e.getKeyChar())==-1)
        e.consume();
}
@Override
public void keyTyped(KeyEvent e) {
    if(lstAllowedCharsForSlotList.indexOf(e.getKeyChar())==-1)
        e.consume();
}

问题是:

  • 事件处理中的代码重复
  • 不允许用户使用箭头键home,end
  • 在文本字段中导航
  • 用户不能使用任何其他键,如删除,插入

任何人都可以帮助提供更好的解决方案吗?

0 个答案:

没有答案