Frage

Wenn ich versuche, ein ButtonGroup-Objekt in mein Box-Objekt einzufügen, gibt der Compiler den folgenden Fehler zurück:

keine Methode für einen solchen Typ

Bitte helfen Sie mir, wie kann ich meinen ButtonGroup in die horizontale Box einfügen?

War es hilfreich?

Lösung

So ähnlich:

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

Andere Tipps

Die ButtonGroup erweitert Object.Es ist keine Komponente.Es wird also nicht explizit zu einem Container oder einer Komponente hinzugefügt.Vielmehr werden AbstractButton-Instanzen gruppiert.

Hier ist der Beispielcode aus JavaDokumentation.

Ein Vorteil, wenn Sie ButtonGroup nicht zu einer Komponente machen (und wahrscheinlich der Grund für die Implementierung auf diese Weise), besteht darin, dass AbstractButton-Instanzen auf verschiedenen Komponenten Mitglied derselben ButtonGroup sein können.
Hier ist ein Beispielcode, der dies anhand eines BoxLayout demonstriert.

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top