设计为仅数字输入时清除TextField的问题

时间:2016-03-14 21:53:31

标签: java textfield digit

我有一个我的贡献者使用的Java程序,我需要更新它以适应更新的Windows版本。我不得不反编译现有的代码来获取代码。其中一个错误是GUI上的一个字段被设置为仅数字字段,然后当您点击清除按钮时,除文本字段外,所有文本字段都被清除。以下是仅限数字限制的编码方式:

public void keyPressed(KeyEvent paramKeyEvent)
{
  char c = paramKeyEvent.getKeyChar();
  if ((!Character.isDigit(c)) && (Character.getType(c) != Character.CONTROL)) {
    paramKeyEvent.consume();
  }
}

当清除代码使用setText("")执行写入文本字段时,不会清除该字段。我怀疑这是因为上面的if语句无法识别null并且事件被消耗了。

我在C中编程了15年,但我从1月开始只教自己Java,所以我现在无法及时对这段代码进行重大修改。我看到有很多方法可以实现仅限数字的输入,但我并不急于重写此代码的大部分内容,如果可能的话,可以按照结构的方式来解决它。

我很感激任何帮助来解决这个问题。感谢。

作为更新,我尝试在字段中写入零而不是""这样可行,所以看起来它实现了导致问题的仅数字字段的方式。

经过更多的搜索(我以为我已经彻底搜索了!)我发现了对setText错误的引用 - 围绕它的唯一方法似乎是使用setText写入空白然后为null。它有效!

1 个答案:

答案 0 :(得分:0)

您不能setText("")而是添加空白setText(" ")