Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将文本字段设置为仅接受数字和退格?_Java_Swing_User Interface_Jtextfield_Keylistener - Fatal编程技术网

Java 如何将文本字段设置为仅接受数字和退格?

Java 如何将文本字段设置为仅接受数字和退格?,java,swing,user-interface,jtextfield,keylistener,Java,Swing,User Interface,Jtextfield,Keylistener,我正在尝试创建一个GUI项目,我希望我的文本字段只接受数字和退格。我目前还不熟悉Java,所以对它还不太了解 以下是我目前的代码: AgeField = new JTextField(); AgeField.addKeyListener(new KeyAdapter(){ public void keyPressed(KeyEvent ke) { String value = AgeField.getText(); int l = value.length();

我正在尝试创建一个GUI项目,我希望我的文本字段只接受数字和退格。我目前还不熟悉Java,所以对它还不太了解

以下是我目前的代码:

AgeField = new JTextField();
AgeField.addKeyListener(new KeyAdapter(){
   public void keyPressed(KeyEvent ke) {
      String value = AgeField.getText();
      int l = value.length();
      if (ke.getKeyChar() >= '0' && ke.getKeyChar() <= '9' && ke.getKeyChar() == KeyEvent.VK_BACK_SPACE) {
           AgeField.setEditable(true);
      }
      else {
           AgeField.setEditable(false);
      }
   }
});
AgeField=newjtextfield();
AgeField.addKeyListener(新的KeyAdapter(){
按下公共无效键(KeyEvent ke){
字符串值=AgeField.getText();
int l=value.length();

如果(ke.getKeyChar()>='0'&&ke.getKeyChar()您应该应用此更改:

if ((ke.getKeyChar() >= '0' && ke.getKeyChar() <= '9') || (ke.getKeyChar() == KeyEvent.VK_BACK_SPACE))

<代码> >((KE.GETKEYCARER)> =‘0’& & KEKEKECAR()。我建议要么回答这个问题,要么考虑使用<代码> JSpinner <代码> > <代码> SPNENENUBER模型< /代码>。它不像你描述的那样工作,但用户可能更喜欢它。实际上,你不应该使用<代码> Kist听者< /Cord>。你仍然可以“粘贴”。将非数字字符放入
JTextField
。这就是
DocumentFilter
类存在的原因。