将ButtonGroup添加到Box-layout对象

时间:2011-12-02 13:11:50

标签: java swing buttongroup

当我尝试将ButtonGroup对象放到我的Box对象时,编译器会返回以下错误:

  

没有这种类型的方法

请帮助我,如何将ButtonGroup添加到Horizo​​ntal Box中?

2 个答案:

答案 0 :(得分:1)

ButtonGroup扩展了Object;它不是一个组件。因此它没有明确添加到Container或Component。相反,它将AbstractButton实例分组。

以下是Java文档中的example code

不使ButtonGroup成为组件的一个优点(可能是以这种方式实现它的原因)是你可以让不同组件上的AbstractButton实例成为同一个ButtonGroup的成员。
下面是一些使用BoxLayout演示它的示例代码。

JPanel mainPanel = new JPanel();
mainPanel.setLayout ( new BoxLayout( mainPanel, BoxLayout.PAGE_AXIS ) );

ButtonGroup group = new ButtonGroup( );

JButton dogButton = new JButton("dog");
group.add( dogButton );
JPanel dogPanel = new JPanel( );
dogPanel.add( dogButton );
mainPanel.add( dogPanel );

JButton catButton = new JButton("cat");
group.add( catButton );
JPanel catPanel = new JPanel();
catPanel.add( catButton );
mainPanel.add( catPanel );

答案 1 :(得分:1)

这样的事情:

ButtonGroup bg; // your button group
Box box; // your box
// Create a panel to group the buttons.
JPanel panel = new JPanel();
// Add all of the buttons in the group to the panel.
for (Enumeration<AbstractButton> en = buttonGroup.getElements(); en.hasMoreElements();) {
    AbstractButton b = en.nextElement();
    panel.add(b);
}
// Add the panel to the box.
box.add(panel):