2014-12-22 32 views
1

我试图让它取决于是否按下一个单选按钮,它将使用Java图形并创建一个带有预设图形的小程序。尽管我试图使用if语句,但它告诉我我无法将JRadioButton转换为布尔值,但我觉得这不会是正确的方法。我拉我的头发,因为我不明白如何做到这一点。将JRadioButton转换为布尔值?

帮助/指导将不胜感激:D!谢谢 !

我的代码如下所示:

import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 


public class RadioButton extends JPanel { 

    static JFrame frame; 

    JLabel pic; 
    RadioListener myListener = null; 
    public RadioButton() { 



     // Create the radio buttons and assign Keyboard shortcuts using Mnemonics 
     JRadioButton displacement = new JRadioButton("Displacement"); 
     displacement.setMnemonic(KeyEvent.VK_N); 
     displacement.setSelected(true); 
     //Displacement Button, set to automatically be clicked 

     JRadioButton accel = new JRadioButton("Acceleration"); 
     accel.setMnemonic(KeyEvent.VK_A); 
     accel.setActionCommand("acceleration"); 
     //Acceleration Button 

     JRadioButton 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(accel); 
     group.add(time); 

       myListener = new RadioListener(); 
       displacement.addActionListener(myListener); 
       accel.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(accel); 
     panel.add(time); 


     setLayout(new BorderLayout()); 
     add(panel, BorderLayout.WEST); 
     add(pic, BorderLayout.CENTER); 
     setBorder(BorderFactory.createEmptyBorder(40,40,40,40)); 
    } 
    if (displacement.setSelected(true)) 
    { 

    } 


    //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() { 
+0

我仍然需要做的一类,其中小程序将运行,但我需要得到它改变它是否被按下 – HLatfullin

回答

2

要设置true到​​。不过,根据你的描述,你想检查它是否被选中。

用途:

if (displacement.isSelected()) 
    { 

    } 

相反的:

if (displacement.setSelected(true)) 
    { 

    } 
+0

好的,我会尝试一下,非常感谢:D – HLatfullin

+0

快速提问:当我这样做时,我在不同的课上做,它说可变位移无法解决。我扩展了其他课程,但那不起作用,所以我如何得到它,以便它可以达到可变位移。 – HLatfullin

+0

我真的不知道该怎么做,所以如果有人能帮助我,这将是太棒了! – HLatfullin