ButtonGroup的添加问题,小菜求教!
首先,请看代码:
import javax.swing.ButtonGroup;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
public class Test extends JFrame{
Test(){
JPanel jpanel = new JPanel() ;
this.getContentPane().add(jpanel);
ButtonGroup bg = new ButtonGroup();
jpanel.add(bg); //这步错了,怎么改?
JRadioButton jrbUser = new JRadioButton("用户");
JRadioButton jrbAdmin = new JRadioButton("管理");
bg.add(jrbUser);
bg.add(jrbAdmin);
}
public static void main(String[] args) {
new Test();
}
}
我知道jpanel.add(bg)错了,但是我的代码里真的需要在jpanel里面添加JRadioButton!我不知道怎么做,求教,求解惑!
---另附---
我之前写一个代码,里面用GridLayout布局JFrame,然后在其中一个JPanel里要使用单选框JRadioButton,所以要用ButtonGroup。
以上代码是我的一个测试类代码!
------解决方案--------------------import java.awt.FlowLayout;
import javax.swing.ButtonGroup;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
public class Test extends JFrame{
Test(){
JRadioButton jrbUser = new JRadioButton("用户");
JRadioButton jrbAdmin = new JRadioButton("管理");
JPanel jpanel = new JPanel();
this.getContentPane().add(jpanel);
setLayout(new FlowLayout());
setSize(200,300);
ButtonGroup bg = new ButtonGroup();
// jpanel.add(bg); //这步错了,怎么改?
add(jrbUser);
add(jrbAdmin);
bg.add(jrbUser);
bg.add(jrbAdmin);
setVisible(true);
}
public static void main(String[] args) {
new Test();
}
}
ButtonGroup不是一个组件所以不能添加到框架中。在API中写的也比较清楚
add
public Component add(Component comp)
这是add方法的定义,其中的形参是Component的引用。而ButtonGroup是直接从Object中继承的(可以看一下ButtonGroup的继承关系),通过Component的引用当然是无法调用的。
在API中也有介绍
How to Use Radio Buttons
Radio buttons are groups of buttons in which, by convention, only one button at a time can be selected. The Swing release supports radio buttons with the JRadioButton and ButtonGroup classes. To put a radio button in a menu, use the JRadioButtonMenuItem class. Other ways of displaying one-of-many choices are combo boxes and lists. Radio buttons look similar to check boxes, but, by convention, check boxes place no limits on how many items can be selected at a time.
Because JRadioButton inherits from AbstractButton, Swing radio buttons have all the usual button characteristics, as discussed earlier in this section. For example, you can specify the image displayed in a radio button.
ButtonGroup的直接拿过来用就行了,把几个RadioButton添加进去,而不需要把ButtonGroup添加到任何的组件。
LZ以后还是遇到问题应该多看看API,API有时候可以解决很多问题,或者Google一下也能找到很多方法
LZ加油···