2013-10-11 35 views
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); 
+1

如果您搜索「輸入驗證」或「在JTextField上驗證用戶輸入」,您可能會得到一些見解。 – Meesh

回答

0

輸入時可以運行result.indexOf( 「」);如果它返回-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); 
    } 
    } 
}); 
相關問題