0

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

我对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);
4

2 回答 2

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);
     }
  }
});
于 2013-10-11T02:35:26.317 回答
0

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

于 2013-10-11T02:33:59.933 回答