Упражнение.
В рассмотренном примере рамки имеют различную ширину. Измените пример таким образом, чтобы все рамки были одинаковы по ширине. Подсказка: используйте другой менеджер расположения главной панели (вместо BoxLayout).
public class main {
public static void main(Stringargs){
JFrame window = new window();
window.setVisible(True);
}
}
public class window extends JFrame{
window(){
super("Пример с кнопками выбора, флажками и переключателями");
setDefaultCloseOperation(EXIT_ON_CLOSE);
ImageIcon icon = new ImageIcon("1.gif");//будем использовать один значок на все случаи
JPanel mainBox = new JPanel();
mainBox.setLayout(new GridLayout(3,1,0,0));
Box box1 = Box.createVerticalBox();
JToggleButton tButton1 = new JToggleButton("Кнопка выбора 1");
JToggleButton tbutton2 = new JToggleButton("Кнопка выбора 2", icon);
ButtonGroup bg = new ButtonGroup();//создаём группу взаимного исключения
bg.add(tButton1);
bg.add(tbutton2);//сделали кнопки tButton1 и tButton2 взаимно исключающими
box1.add(tButton1);
box1.add(tbutton2);//добавили кнопки tButton1 и tButton2 на панель box1
box1.setBorder(new TitledBorder("Кнопки выбора"));
Box box2 = Box.createVerticalBox();
JCheckBox chech1 = new JCheckBox("Флажок 1");
JCheckBox check2 = new JCheckBox("Флажок 2", icon);
box2.add(chech1);
box2.add(check2);//добавили флажки на панель box2
check2.setSelectedIcon(new ImageIcon("2.gif"));
box2.setBorder(new TitledBorder("Флажки"));
Box box3 = Box.createVerticalBox();
JRadioButton rButton1 = new JRadioButton("Переключатель 1");
JRadioButton rButton2 = new JRadioButton("Переключатель 2", icon);
bg = new ButtonGroup();//создаём группу взаимного исключения
bg.add(rButton1);
bg.add(rButton2);//сделали радиокнопки взаимноисключающими
box3.add(rButton1);
box3.add(rButton2);//добавили радиокнопки на панель box3
rButton2.setSelectedIcon(new ImageIcon("2.gif"));
box3.setBorder(new TitledBorder("Переключатели"));
mainBox.add(box1);
mainBox.add(box2);
mainBox.add(box3);
setContentPane(mainBox);
pack();
}
}