2012-04-12 7 views
1

以下のコードは、プロジェクトのアクションリスナーです。基本的には4つのラジオボタンがあり、クリックすると画面上の変数を変更したいのです。コードを実行すると、単にすべての値を加算するだけです。これを行う他の方法はありますか?アクションリスナー

class Calc implements ActionListener 
    { 
    public void actionPerformed(ActionEvent event) 
    { 
     double base = 0.00; 
     double options; 
     double total; 

     if (Button25.isSelected()); 
     { 
     base = base + 999.99; 
     String base2 = Double.toString(base); 
     lblBaseAns.setText(base2); 
     } 

     if (Button32.isSelected()); 
     { 
     base = base + 1049.99; 
     String base2 = Double.toString(base); 
     lblBaseAns.setText(base2); 
     } 

     if (Button35.isSelected()); 
     { 
     base = base + 1099.99; 
     String base2 = Double.toString(base); 
     lblBaseAns.setText(base2); 
     } 

     if (Button42.isSelected()); 
     { 
     base = base + 1155.99; 
     String base2 = Double.toString(base); 
     lblBaseAns.setText(base2); 
     } 


    } 
    } 
+0

"*すべての値をまとめて*"。どうやって? – Lion

+0

なぜか分かりませんが、コードをトリガーするアクションを実行すると、各ラジオボタンのすべての値がまとめて表示されます。 – Brandon

+0

それは起こるべきではありません。あなたはおそらく**グループ**に関する何かを見逃しています。 – Lion

答えて

2

問題は、(Button32.isSelected())場合として、各if()文のことです。の場合、末尾に;シンボルがあります。これはそこにはいけません。ここでは修正されたコード...

class Calc implements ActionListener { 
    public void actionPerformed(ActionEvent event){ 
     double base = 0.00; 
     double options; 
     double total; 

     if (Button25.isSelected()){ // changed 
      base = base + 999.99; 
      String base2 = Double.toString(base); 
      lblBaseAns.setText(base2); 
     } 
     else if (Button32.isSelected()){ // changed 
      base = base + 1049.99; 
      String base2 = Double.toString(base); 
      lblBaseAns.setText(base2); 
     } 
     else if (Button35.isSelected()){ // changed 
      base = base + 1099.99; 
      String base2 = Double.toString(base); 
      lblBaseAns.setText(base2); 
     } 
     else if (Button42.isSelected()){ // changed 
      base = base + 1155.99; 
      String base2 = Double.toString(base); 
      lblBaseAns.setText(base2); 
     } 
    } 
} 

が代わりにあり、なぜあなたはActionEventからクリックされたボタンを得ることはありませんし、お使いのif-elseブランチにあるボタンを使用して...

class Calc implements ActionListener { 
    public void actionPerformed(ActionEvent event){ 
     double base = 0.00; 
     double options; 
     double total; 

     Object clickedObject = event.getSource(); 
     if (clickedObject instanceof JRadioButton){ 
      JRadioButton clickedButton = (JRadioButton)clickedObject; 

      if (clickedButton == Button25){ 
       base = base + 999.99; 
       String base2 = Double.toString(base); 
       lblBaseAns.setText(base2); 
      } 
      else if (clickedButton == Button32){ 
       base = base + 1049.99; 
       String base2 = Double.toString(base); 
       lblBaseAns.setText(base2); 
      } 
      else if (clickedButton == Button35){ 
       base = base + 1099.99; 
       String base2 = Double.toString(base); 
       lblBaseAns.setText(base2); 
      } 
      else if (clickedButton == Button42){ 
       base = base + 1155.99; 
       String base2 = Double.toString(base); 
       lblBaseAns.setText(base2); 
      } 
     } 
    } 
} 
+0

私は全く気づかなかった。エラー。私はこれを修正するとすぐに問題を解決しました。ありがとう! – Brandon

+0

私は自分のコード提案を書くまで、私はそれに気付かなかった。 – wattostudios

関連する問題