Question

Lorsque je tente de mettre l'objet ButtonGroup à mon objet Box, compilateur renvoie l'erreur suivante:

pas de méthode pour le type d'un tel

S'il vous plaît aidez-moi, comment puis-je ajouter mon ButtonGroup en boîte horizontale?

Était-ce utile?

La solution

Quelque chose comme ceci:

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):

Autres conseils

Le ButtonGroup étend l'objet; il n'est pas un composant. Il est donc pas explicitement ajouté à un conteneur ou des composants. Au contraire, il regroupe les instances AbstractButton.

Voici le code exemple de Java documentation.

Un avantage de ne pas ButtonGroup un composant (et probablement la raison de la mise en œuvre de cette façon) est que vous pouvez avoir des instances AbstractButton sur différents composants être membre du même ButtonGroup.
Voici quelques exemples de code pour le démontrer, au moyen d'un 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 );
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top