2012-04-12 4 views
1

Приведенный ниже код является исполнителем действий для проекта. В принципе, у меня есть 4 переключателя, и когда я нажимаю один, я хочу, чтобы он менял переменную на экране. Когда я запускаю код, он просто объединяет все значения. Есть ли другие способы сделать это?Action Listener

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

Проблема заключается в том, что для каждого if() заявления, например, если (Button32.isSelected());, у вас есть символ ; в конце. Этого не должно быть. Вот исправленный код ...

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, а затем использовать кнопку в вашем если-то еще отрасли ...

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

Смежные вопросы