У меня есть эта кнопка и текстовое поле, и я хотел добавить значение к переменной, когда нажимается кнопка, все работает отдельно от того, что я не могу добавить значение к строковой переменной
Например, если я ставлю значение 20 в строку tempvalue, у него должно быть 20, а я ставлю 30, то должно быть 50, но я получаю null2050.
Я пробовал + = оператор, который не работал.
Не существует ли какой-либо оператор, который продолжает добавлять значение поверх него или мне нужно написать новый метод?
private String tempvalue;
btnEnter.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String getTxt = textField.getText();
tempvalue += getTxt;
System.out.println(tempvalue);
}
});
Вы получаете строки из текстовых полей.
String input = getTxt;
Вы должны проанализировать строку с целым числом или любым другим типом номера.
int value = Integer.parseInt(input);
Затем вы можете делать вычисления.
Вы также должны всегда проверять, действительно ли пользовательский ввод является числом. Используйте try/catch, чтобы избежать неправильного ввода:
int value = 0;
int firstValue = 5; //example variable
try{
value = Integer.parseInt(input);
}catch(Exception e1){
System.out.println("Your input could not be parsed to a number");
}
int result = firstValue + value; //always be sure all your values are numbers and not strings
System.out.println("Result: "+result);
В итоге:
private int tempvalue = 0;
btnEnter.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String getTxt = textField.getText();
int value = 0;
try{
value = Integer.parseInt(getTxt);
}catch(Exception e1){
System.out.println("Your input could not be parsed to a number");
}
tempvalue += value;
System.out.println("Result: "+tempvalue);
}
});
}
firstValue
объявляется
Вы просто объединяете свои струны. На самом деле вы начинаете с null
тогда вы добавляете 20
но как String, а затем 30
но всегда как String. Преобразуйте на каждом шаге число, а затем сделайте свой результат.
Как комментирует @Jesper, код объединяет строки и не применяет вычисления, такие как сумма, вычитание и сын...
Итак, попробуйте изменить код для преобразования из java.lang.String
в java.langInteger
Integer tempValue += new Integer( getText );
System.out.println( tempvalue );
или используя статический метод из класса wrapper Integer
Integer tempValue += Integer.parseInt( getText );
System.out.println( tempvalue );
или затем с использованием типа int Java (автоматически с автоматическим полем)
int tempValue += Integer.parseInt( getText ).intValue();
System.out.println( tempvalue );
Будьте осторожны с целыми целыми преобразованиями. Это может привести к возникновению исключения NumberFormatException во время выполнения.