Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Swing: JRadioButton



Элемент управления JRadioButton предназначен для организации выбора только одного значения из нескольких возможных. Для этого несколько элементов JRadioButton объединяются в одну группу, которая работает как единое целое - если выбрать одну из радиокнопок, входящих в группу, то остальные радиокнопки из этой группы становятся невыбранными.

Вот пример кода:

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class MyFrame

extends JFrame

implements ActionListener {

// Переменные для радиокнопок.

public JRadioButton r1, r2, r3;

// Переменная для группы радиокнопок.

public ButtonGroup bg = new ButtonGroup();

// Конструктор.

public MyFrame() {

setDefaultCloseOperation(EXIT_ON_CLOSE);

// Устанавливаем размеры и расположение.

setLocation(400, 200);

setSize(200, 200);

setTitle("Title");

// Задаем контейнер для компонентов.

Container con = getContentPane();

con.setLayout(new FlowLayout());

// Создание радиокнопок.

r1 = new JRadioButton("Java");

r2 = new JRadioButton("C/C++");

r3 = new JRadioButton("C#");

// Добавление радиокнопок к контейнеру.

con.add(r1);

con.add(r2);

con.add(r3);

// Добавление радиокнопок в группу.

bg.add(r1);

bg.add(r2);

bg.add(r3);

// Указание обработчиков для радиокнопок.

r1.addActionListener(this);

r2.addActionListener(this);

r3.addActionListener(this);

}

public void actionPerformed(ActionEvent e) {

// Изменение заголовка окна в зависимости от выбранной радиокнопки.

setTitle(e.getActionCommand());

}

public static void main(String[] args) {

// Создание главного окна.

new MyFrame().setVisible(true);

}

public void windowClosing(WindowEvent ev) {

System.exit(0);

}

}

Обратите внимание на следующие моменты. Во-первых, мы объявили наш класс реализующим интерфейс ActionListener:

public class MyFrame

extends JFrame

implements ActionListener {

...

Это мы сделали для возможности добавления обработчика нажатия на наши радиокнопки.

Во-вторых, для объединения радиокнопок в группу мы объявили переменную bg типа ButtonGroup и все радиокнопки в эту группу добавили:

...

// Добавление радиокнопок в группу.

bg.add(r1);

bg.add(r2);

bg.add(r3);

...

В-третьих, мы для всех радиокнопок указали один и тот же обработчик:

...

// Указание обработчиков для радиокнопок.

r1.addActionListener(this);

r2.addActionListener(this);

r3.addActionListener(this);

...

Этот обработчик - не что иное как метод actionPerformed:

public void actionPerformed(ActionEvent e) {

// Изменение заголовка окна в зависимости от выбранной радиокнопки.

setTitle(e.getActionCommand());

}

Этот метод из интерфейса ActionListener, для которого наш класс является потомком и который мы реализуем. Что за кнопку мы выбрали, мы определяем через метод getActionCommand для передаваемого параметра типа ActionEvent.

Запускаем программу. При выборе любой радиокнопки ее текст появится в заголовке окна:





Дата публикования: 2014-11-04; Прочитано: 438 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...