2016-11-10 4 views
0

私は18を超える値を入力すると、JLabelに1を加算するというプログラムを作成していますが、ボタンをクリックするたびに、プログラムは追加する代わりに1にリセットされます。例えばJButtonがアクティブになるたびにリセットすることなくJLabelに値を保存するにはどうすればいいですか?

私は18より大きい別の値を入力した場合、合計は2であるので、JLabelは追加の1を追加する必要があります...

これは私のコードです:

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]または[短く、自己完結型の正しい例](http://www.sscce.org/)を投稿してください。 –

+1

'int totalOne = 0;'は 'int totalOne = age;'でなければなりませんが、漠然とした理論よりも、私の最初のコメントを見てください。 BTW - これは 'JLabel' /' JButton'コンボの代わりに 'JSpinner'に適しています。 –

答えて

1

あなたが取得する必要がありますJLabelの現在の値を取得し、それに1を加えます。現在

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

、0の値にあなたの変数totalOnetotalTwoリセットこれまでの時間、彼らはローカル変数であるため、それは条件文を介して実行されます。

+0

ありがとうTim、私は私のコードに私のコードにあなたのコードを置くときにエラーが発生するロジックを理解しています - 実際の引数intは、メソッドの呼び出し変換によって文字列に変換することはできません??? –

+0

@ G.Manさんが自分のコードを編集しました。 – Tim

+0

はい、あなたの人生の節約に役立ちました:D –

関連する問題