2

ButtonGroupオブジェクトをオブジェクトに配置しようとするとBox、コンパイラは次のエラーを返します。

そのようなタイプのメソッドはありません

助けてください、どうすればButtonGroup水平ボックスに追加できますか?

4

2 に答える 2

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):
于 2011-12-02T13:37:37.967 に答える
1

ButtonGroup は Object を拡張します。コンポーネントではありません。そのため、コンテナまたはコンポーネントに明示的に追加されません。むしろ、AbstractButton インスタンスをグループ化します。

Java ドキュメントのサンプル コードを次に示します。

ButtonGroup をコンポーネントにしないことの 1 つの利点 (そしておそらくこのように実装する理由) は、異なるコンポーネントの 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 );
于 2011-12-02T13:21:05.577 に答える