为什么不打印? (单选按钮的输出)

Why isn't this printing? (output of radio button)

所以我有一个单选按钮,然后我有一个基于结果的 if/else 语句。但是 if/else 语句应该将内容打印到控制台,但实际上并没有。单选按钮有问题吗?

如果可以,请提供详尽的答案,因为我对 Java 不是很好。非常感谢 :D

  import java.awt.*;

import java.awt.event.*;

import javax.swing.*;


public class RadioButton extends JPanel {

    int xDisplacement = 8;
    int xVAvg = 8;
    int xTime = 8; 

    static JFrame frame;

   JLabel pic;
   RadioListener myListener = null;
   protected JRadioButton displacement;
   protected JRadioButton vAvg; 
   protected JRadioButton time;
   public RadioButton() {



       // Create the radio buttons
       displacement = new JRadioButton("Displacement");
       displacement.setMnemonic(KeyEvent.VK_N);
       displacement.setActionCommand("displacement")
        //Displacement Button, set to automatically be clicked

       vAvg = new JRadioButton("Average Velocity");
       vAvg.setMnemonic(KeyEvent.VK_A);
       vAvg.setActionCommand("averagevelocity");
        //Acceleration Button

       time = new JRadioButton("Change in time");
       time.setMnemonic(KeyEvent.VK_S);
       time.setActionCommand("deltaT");
        //The change in time button


       // Creates the group of buttons
       ButtonGroup group = new ButtonGroup();
       group.add(displacement);
       group.add(vAvg);
       group.add(time);

              myListener = new RadioListener();
                displacement.addActionListener(myListener);
                vAvg.addActionListener(myListener);
                time.addActionListener(myListener);


      // Set up the picture label
       pic = new JLabel(new ImageIcon(""+"numbers" + ".jpg"));          //Set the Default Image

       pic.setPreferredSize(new Dimension(177, 122)); 


       // Puts the radio buttons down
       JPanel panel = new JPanel();
       panel.setLayout(new GridLayout(0, 1));
       panel.add(displacement);
       panel.add(vAvg);
       panel.add(time);


       setLayout(new BorderLayout());
       add(panel, BorderLayout.WEST);
       add(pic, BorderLayout.CENTER);
       setBorder(BorderFactory.createEmptyBorder(40,40,40,40));
   } 



   //Listening to the buttons
   class RadioListener implements ActionListener { 
       public void actionPerformed(ActionEvent e) {
           pic.setIcon(new ImageIcon(""+e.getActionCommand() + ".jpg"));

       }
   }

   public static void main(String s[]) {
        frame = new JFrame("∆x = Vavg * time");
        frame.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {System.exit(0);}
        });

        frame.getContentPane().add(new RadioButton(), BorderLayout.CENTER);
        frame.pack();
        frame.setVisible(true);
   }



     public void running() {
        if ( displacement.isSelected()) {
            //Option 1
            System.out.println("The distance traveled on the x axis in meters is " + xDisplacement);
            System.out.println("You can find the Average Velocity by dividing this number by time or find the time by dividing this number by the Average Velocity");
            }
        if ( vAvg.isSelected()) {
            //Option 2 
            System.out.println("The average velocity in Meters per Second is " + xVAvg);
            System.out.println("You can find the displacement by multiplying the time and this number together or to find the time, just divide the displacement by this number");
        }

        else {
            //Option 3
            System.out.println("The time in seconds is " + xTime);
            System.out.println("You can find the displacement by multiplying the velocity times this number or you can find the average velocity by dividing the displacement by this number");
        }
        }


   }

你不见了;在你的这行代码

displacement.setActionCommand("displacement")

正如 MadProgrammer 所说,在实现 ActionListner

的 RadioListner class 中调用您的 运行 方法
class RadioListener implements ActionListener { 
   public void actionPerformed(ActionEvent e) {
       pic.setIcon(new ImageIcon(""+e.getActionCommand() + ".jpg"));
running();
   }
}

从您的 RadioListeneractionPerformed 方法中调用 running