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

时间:2015-01-01 02:53:52

标签: java if-statement printing

所以我有一个单选按钮,之后我有一个基于结果的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");
        }
        }


   }

2 个答案:

答案 0 :(得分:1)

你失踪了;在你的代码的这一行

displacement.setActionCommand("displacement")

并且正如MadProgrammer所说,在实现ActionListner的RadioListner类中调用您的运行方法

class RadioListener implements ActionListener { 
   public void actionPerformed(ActionEvent e) {
       pic.setIcon(new ImageIcon(""+e.getActionCommand() + ".jpg"));
running();
   }
}

答案 1 :(得分:0)

通过running的{​​{1}}方法致电RadioListener