aggiungendo ButtonGroup all'oggetto Box-layout
-
27-10-2019 - |
Domanda
Quando provo a inserire l'oggetto ButtonGroup
nel mio oggetto Box
, il compilatore restituisce il seguente errore:
nessun metodo per questo tipo
Per favore aiutami, come posso aggiungere il mio ButtonGroup
nella casella orizzontale?
Soluzione
Qualcosa di simile:
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):
Altri suggerimenti
Il ButtonGroup estende Object;non è un componente.Quindi non viene aggiunto esplicitamente a un contenitore o componente.Piuttosto, raggruppa le istanze di AbstractButton.
Ecco il codice di esempio da Javadocumentazione.
Un vantaggio di non rendere ButtonGroup un componente (e probabilmente il motivo per implementarlo in questo modo) è che puoi avere istanze di AbstractButton su diversi componenti come membri dello stesso ButtonGroup.
Ecco un po 'di codice di esempio per dimostrarlo, utilizzando 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 );