ajoutant ButtonGroup à Box-layout objet
-
27-10-2019 - |
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?
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 );