adicionar ButtonGroup ao objeto de layout de caixa
-
27-10-2019 - |
Pergunta
Quando tento colocar o objeto ButtonGroup
em meu objeto Box
, o compilador retorna o seguinte erro:
nenhum método para esse tipo
Por favor me ajude, como posso adicionar meu ButtonGroup
na caixa horizontal?
Solução
Algo assim:
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):
Outras dicas
O ButtonGroup estende Object;não é um componente.Portanto, não é explicitamente adicionado a um contêiner ou componente.Em vez disso, ele agrupa instâncias AbstractButton.
Aqui está o código de exemplo do Javadocumentação.
Uma vantagem de não tornar o ButtonGroup um componente (e provavelmente a razão para implementá-lo dessa forma) é que você pode ter instâncias AbstractButton em diferentes componentes como membros do mesmo ButtonGroup.
Aqui está um código de amostra para demonstrar isso, usando um 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 );