Получение числового значения из текстового поля - PullRequest
0 голосов
/ 09 января 2019

решено: в настоящее время я работаю над программой, использующей Netbeans (JFrames), и мне нужно получить числовое значение из текстового поля, используя один из '.get'.

НОВАЯ ПРОБЛЕМА: при выполнении оператора if для контактного номера выдается ошибка, в которой говорится, что int не может быть разыменован. Есть предложения?

    namevalidation.setText(""); //Set text for the label
    surnamevalidation.setText(""); //Set text for the label
    contactvalidation.setText(""); //Set text for the label

    String name = namefield.getText(); //Get text form a textfield
    String surname = surnamefield.getText(); //Get text form a textfield
    int contactnumber = Integer.parseInt(contactfield.getText()); //Getting the numeric value form the textfield


    boolean passed=true;

    if(name.isEmpty())//Checking if the name or surname is empty
    {
        namevalidation.setText("Please enter your name!");
        passed = false;
    }

    if(surname.isEmpty())
    {
        surnamefield.setText("Please enter your surname!");
        passed = false;
    }
    if(contactnumber.isEmpty()) //THIS IS GIVING ME AN ERROR
    {
        contactfield.setText("Please enter your number!");
        passed = false;
    }

Ответы [ 2 ]

0 голосов
/ 09 января 2019

Самый простой способ сделать это - получить его в виде строки и преобразовать в число, используя метод Integer.parseInt().

String contactNumberStr = contactfield.get();

if (contactNumberStr != null) {
    try {
        int contactNumber = Integer.parseInt(contactNumberStr);
    } catch (NumberFormatException e) {
        // contactfield is not having a number
    }
}
0 голосов
/ 09 января 2019

Вы должны использовать метод Integer#parseInt:

int contactnumber = Integer.parseInt(contactfield.getText());

Integer#parseInt принимает String и преобразует его в примитив int, если это допустимое число. Если номер не действителен, будет выброшено NumberFormatException.

Документация Integer#parseInt:

/**
 * Parses the string argument as a signed decimal integer. The
 * characters in the string must all be decimal digits, except
 * that the first character may be an ASCII minus sign {@code '-'}
 * ({@code '\u005Cu002D'}) to indicate a negative value or an
 * ASCII plus sign {@code '+'} ({@code '\u005Cu002B'}) to
 * indicate a positive value. The resulting integer value is
 * returned, exactly as if the argument and the radix 10 were
 * given as arguments to the {@link #parseInt(java.lang.String,
 * int)} method.
 *
 * @param s    a {@code String} containing the {@code int}
 *             representation to be parsed
 * @return     the integer value represented by the argument in decimal.
 * @exception  NumberFormatException  if the string does not contain a
 *               parsable integer.
 */
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...