Java 我如何只允许用户在计算器应用程序中输入一个小数点?

Java 我如何只允许用户在计算器应用程序中输入一个小数点?,java,Java,我正在为类创建一个计算器,我需要限制用户添加一个小数点。在当前状态下,他们可以添加任意数量的内容 我对爪哇很陌生,所以请容忍我 此处是创建文本框的位置: public InLab05() { setLayout(new GridBagLayout()); GridBagConstraints c = new GridBagConstraints(); JTextField result = new JTextField(); c.fill = GridBag

我正在为类创建一个计算器,我需要限制用户添加一个小数点。在当前状态下,他们可以添加任意数量的内容

我对爪哇很陌生,所以请容忍我

此处是创建文本框的位置:

public InLab05() {

    setLayout(new GridBagLayout());
    GridBagConstraints c = new GridBagConstraints();


    JTextField result = new JTextField();
    c.fill = GridBagConstraints.HORIZONTAL;
    c.gridx = 0;
    c.gridy = 0;
    c.gridwidth = 4;
    add(result, c);

在输入时,您可以运行result.indexOf(“.”);如果返回-1,则允许添加用户输入,因为您知道该字符串不包含任何内容。

使用此选项,即使用户继续输入更多数字,也将只保留一个十进制数字

result.getDocument().addDocumentListener(new DocumentListener() {
  public void changedUpdate(DocumentEvent e) {
    check();
  }
  public void removeUpdate(DocumentEvent e) {
    check();
  }
  public void insertUpdate(DocumentEvent e) {
    check();
  }

  private void check(){
     String str=result.getText();
     if(str.length()- str.lastIndexOf('.')>2){
          result.setText(str.subString(0,str.lastIndexOf('.')+2);
     }
  }
});

如果搜索“输入验证”或“JTextField上的用户输入验证”,您可能会获得一些见解。