从JRadioButtons组中查找所选选项

时间:2013-05-26 15:54:04

标签: java radio-button jbutton

我的Java中的JButton存在问题,我到处查找它并找不到任何原因导致它无法正常工作。这可以帮助其他有同样问题的人。基本上我试图在文本框中显示其中一辆车(来自精选的JRadioButtons),例如你选择了Car,但是当我按下“Check”按钮时它出现了你选择了...... Null and我毫不知道。

任何帮助将不胜感激!

三江源!

这是我的代码

    txtVehicleType = new JTextField();
    txtVehicleType.setText("Vehicle Type");
    txtVehicleType.setBounds(10, 57, 86, 20);
    frmCarpark.getContentPane().add(txtVehicleType);
    txtVehicleType.setColumns(10);


    JRadioButton rdbtnCar = new JRadioButton("Car");
    rdbtnCar.setBounds(10, 84, 51, 23);
    frmCarpark.getContentPane().add(rdbtnCar);


    JRadioButton rdbtnMotorbike = new JRadioButton("Motorbike");
    rdbtnMotorbike.setBounds(10, 110, 109, 23);
    frmCarpark.getContentPane().add(rdbtnMotorbike);

    JRadioButton rdbtnPickupTruck = new JRadioButton("Pick-up Truck");
    rdbtnPickupTruck.setBounds(10, 136, 109, 23);
    frmCarpark.getContentPane().add(rdbtnPickupTruck);

    final ButtonGroup group1 = new ButtonGroup();
    group1.add(rdbtnCar);
    group1.add(rdbtnMotorbike);
    group1.add(rdbtnPickupTruck);


    txtYouHaveSelected = new JTextField();
    txtYouHaveSelected.setText("You have selected..." );
    txtYouHaveSelected.setBounds(10, 193, 178, 29);
    frmCarpark.getContentPane().add(txtYouHaveSelected);
    txtYouHaveSelected.setColumns(10);


    JButton btnCheck = new JButton("Check");
    btnCheck.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
                txtYouHaveSelected.setText("You have selected..." + group1.getSelection());

        }
    });
    btnCheck.setBounds(10, 166, 89, 23);
    frmCarpark.getContentPane().add(btnCheck);
}

1 个答案:

答案 0 :(得分:0)

group1.getSelection()返回所选按钮的模型 你最好在radiobuttons中循环,看看哪一个被选中:

java.util.Enumeration<AbstractButton> rbs=buttonGroup1.getElements(); 
 while(rbs.hasMoreElements()){
       JRadioButton tempRadio = (JRadioButton)rbs.nextElement();
          if(tempRadio.isSelected()){
               System.out.println("Selected : "+tempRadio.getText());
               break;
              }
         }

注意:AbstractButton已使用,因为它定义了按钮和菜单项的常见行为。