2016-11-10 1 views
0

Я создаю программу, которая, когда вы вводите значение больше 18, добавляет его к JLabel, однако каждый раз, когда я нажимаю кнопку, программа сбрасывается обратно на 1 вместо добавления дополнительного.Как сохранить значение в JLabel без его сброса при каждом запуске JButton?

Например, если я введу другое значение больше, чем 18, то JLabel следует добавить еще один, так что общая сумма два ...

Это мой код:

int age = Integer.parseInt(jTextField1.getText()); // gets the value from the button click 

if(age >= 18){ // determines if it is greater then 18 
    int totalOne = 0; 
    totalOne = totalOne + 1; 
    String totalAgeOne = Integer.toString(totalOne); 
    jLabel3.setText(totalAgeOne); // sets the jlabel to One 
}else{ 
    int totalTwo = 0; 
    totalTwo = totalTwo + 1; 
    String totalAgeTwo = Integer.toString(totalTwo); 
    jLabel5.setText(totalAgeTwo);  
} 
+1

Чтобы лучше помочь, опубликуйте [MCVE] или [Short, Self Contained, Correct Example] (http://www.sscce.org/). –

+1

Похоже, что 'int totalOne = 0;' должно быть 'int totalOne = age;', но для более чем неопределенных теорий см. Мой первый комментарий. BTW - похоже, это лучше подходит для 'JSpinner' вместо комбо JLabel'/JButton'. –

ответ

1

Вы должны получить текущее значение JLabel, а затем добавьте его к нему.

jLabel3.setText(""+(Integer.parseInt(jLabel3.getText())+1)); 

В настоящее время переменная totalOne и totalTwo сбрасывается на значение 0 в истории времени она проходит через условный оператор, потому что они являются локальными переменными.

+0

Спасибо Тиму, я понимаю логику, однако, когда я помещаю ваш код в свой код, возникает ошибка - фактический аргумент int не может быть преобразован в String путем преобразования вызова метода ??? –

+0

@ G.Man изменил мой код, попробуйте сейчас? – Tim

+0

Да, это сработало с вашей жизнью: D –