有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java动作监听器

下面的代码是一个项目的操作侦听器。基本上,我有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);
      }


     }
    }

共 (1) 个答案

  1. # 1 楼答案

    问题是,对于每个if()语句,比如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获取单击的按钮,然后使用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);
                }
            }
        }
    }