2014-10-19 48 views
1

我正在製作一個計算器,並且我想要拋出一個窗口並顯示一條消息,指出只有在用戶輸入的字符不是數字textField,所以這就是我所做的,根本沒有工作。 感謝您的閱讀。防止用戶在計算器中使用某些字符

private void txtPantallaActionPerformed(java.awt.event.ActionEvent evt) {            
    String invalids; 
    invalids = "|@#¢∞¬÷「」≠´‚πø ¥†®€æœå∫∂ƒ™¶§ ~–…„µ ß√©∑Ωqwertyuiopñlkjhgfdsazxcvbnm!$%&/=?¿*^QWERTYUIOPÑLKJHGFDSAZXCVBNM"; 
    for (int i = 0 ; i < invalids.length() ; i++) 
    { 
     if(txtPantalla.getText().equals (invalids.substring(i, i+1))) 
     { 
      JOptionPane.showMessageDialog(null,"Only works with numbers"); 
     } 
    } 


} 
+0

爲什麼不只是吃點按鍵,那應該足夠好地發送消息。 – ChiefTwoPencils 2014-10-19 19:38:03

回答

1

您可以使用正則表達式的可讀性,避免循環:

String value = txtPantalla.getText(); 
if(Pattern.matches(".*[^0-9].*", value)) { 
    // there are some invalid characters! 
    JOptionPane.showMessageDialog(null, "Only works with numbers"); 
} 

,需要你硬編碼的東西也許是錯誤的任何解決方案。

相關問題