如何验证输入的文本是否为数字?

Jav*_*oob 2 java validation swing programming-languages joptionpane

我有一个计算应用程序,我需要验证字段,以检查输入的值是否是数字而不是字母数字.我对这些代码有一些想法.
如果我做错了什么或看起来像菜鸟,请指导我,因为这是我第一次尝试Swing.

private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {
    String text1 = jTextField1.getText();            // TODO add your handling code here:
}

private void jTextField2ActionPerformed(java.awt.event.ActionEvent evt) {
    String text2 = jTextField2.getText();        // TODO add your handling code here:
}

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
    if (text1 and text2 != <numeric number>){
        JOptionPane.showConfirmDialog(null, "Please enter numbers only", "naughty", JOptionPane.CANCEL_OPTION);
    }
    // First we define float variables.
    float num1, num2, result;
    // We have to parse the text to a type float.
    num1 = Float.parseFloat(jTextField1.getText());
    num2 = Float.parseFloat(jTextField2.getText());
    // Now we can perform the addition.
    result = num1+num2;
    // We will now pass the value of result to jTextField3.
    // At the same time, we are going to
    // change the value of result from a float to a string.
    jTextField3.setText(String.valueOf(result));
    // TODO add your handling code here:
}
Run Code Online (Sandbox Code Playgroud)

请帮忙.那么为什么我的NetBeans一直告诉我它不能识别"JOptionPane"命令?

sam*_*aur 7

Float.parseFloat()NumberFormatException如果String不是数字并且无法解析为a 将抛出一个Float.您可以添加一个try-catch块来检查这种情况:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
    float num1, num2, result;

    try {
        num1 = Float.parseFloat(jTextField1.getText());
        num2 = Float.parseFloat(jTextField2.getText());
        result = num1+num2;
        jTextField3.setText(String.valueOf(result));

    } catch (NumberFormatException e) {
        JOptionPane.showConfirmDialog(null, "Please enter numbers only", "naughty", JOptionPane.CANCEL_OPTION);
    }
}
Run Code Online (Sandbox Code Playgroud)