Упражнение. В рассмотренном примере рамки имеют различную ширину. Измените пример таким образом, чтобы все рамки были одинаковы по ширине. Подсказка: используйте другой менеджер расположения главной панели (вместо 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(); } }

Теги: Java Swing GUI

Теги других блогов: Java Swing GUI