Чтобы организовать группу радиокнопок, надо сначала сформировать объект класса CheckboxGroup, а затем создавать кнопки конструкторами
Checkbox(String label, CheckboxGroup group, boolean state)
Checkbox(String label, boolean state, CheckboxGroup group)
Эти конструкторы идентичны, просто при записи конструктора можно не думать о порядке следования его аргументов.
Только одна радиокнопка в группе может иметь состояние state = true.
Пора привести пример. В листинге 10.1 приведена программа, помещающая в контейнер Frame две метки Label сверху, под ними слева три объекта checkbox, справа — группу радиокнопок. Внизу — три кнопки Button. Результат выполнения программы показан на рис. 10.1.
Листинг 10.1.
Размещение компонентов
import java.awt.*;
import j ava.awt.event.*;
class SimpleComp extends Frame{
SimpleComp(String s){ super(s);
setLayout(null);
Font f = new Font("Serif", Font.BOLD, 15);
setFont(f);
Label 11 = new Label("Выберите товар:", Labe1.CENTER);
l1.setBoundsdO, 50, 120, 30); add(11);
Label 12 = new Label("Выберите способ оплаты:");
l2.setBounds(160, 50, 200, 30); add(12);
Checkbox chl = new Checkbox("Книги");
chl.setBounds(20, 90, 100, 30); add(chl);
Checkbox ch2 = new Checkbox("Диски");
ch2.setBounds(20, 120, 100, 30); add(ch2);
Checkbox ch3 = new Checkbox("Игрушки");
ch3.setBounds(20, 150, 100, 30); add(ch3);
CheckboxGroup grp = new CheckboxGroup();
Checkbox chgl = new Checkbox("Почтовым переводом", grp,-true);
chgl.setBounds{170, 90, 200, 30); add(chgl);
Checkbox chg2 = new Checkbox{"Кредитной картой", grp, false);
chg2.setBounds(170, 120, 200, 30); add(chg2);
Button b1 = new Button("Продолжить");
bl.setBounds( 30, 220, 100, 30); add(bl));
Button b2 = new Button("Отменить");
