我怎么才允许用户在计算器应用程序中输入一个小数点?

时间:2013-10-11 02:24:32

标签: java

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

我对Java很新,所以忍受我......

以下是创建文本框的位置:

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);

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

使用它,即使他继续输入更多数字,它也只保留一个十进制数字。

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);
     }
  }
});