Отправляет email-рассылки с помощью сервиса Sendsay

Уроки по Java

  Все выпуски  

Уроки по Java


Информационный Канал Subscribe.Ru

Java. Рассылки сайта progs.biz
Выпуск № 35
 
Начало > Java > Основы > Урок 27

Дэвид Флэнаган Java. Справочник.
Дэвид Флэнаган. Java. Справочник
Заказать на Озоне

Подробнее


Полные версии уроков (с картинками): урок 27.

Введение в Java
Урок 27. Swing: Несколько групп радиокнопок

На прошлом уроке мы рассмотрели работу с одной группой радиокнопок. Сейчас же мы с вами посмотрим, как работать с несколькими группами радиокнопок.

Приведем сразу листинг программы:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class MyFrame
    extends JFrame
    implements ActionListener {
  // Переменные для радиокнопок.
  public JRadioButton r1, r2, r3, r4, r5;
  String sel0, sel1; //Текст выбранной радиокнопки в каждой группе.
  // Две переменные для группы радиокнопок.
  public ButtonGroup bg = new ButtonGroup();
  public ButtonGroup bg1 = 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);

    // Выделение первой радиокнопки в первой группе.
    r1.setSelected(true);

    // Создание радиокнопок.
    r4 = new JRadioButton("Windows");
    r5 = new JRadioButton("Linux");

    // Добавление радиокнопок к контейнеру.
    con.add(r4);
    con.add(r5);

    // Добавление радиокнопок в группу.
    bg1.add(r4);
    bg1.add(r5);

    // Указание обработчиков для радиокнопок.
    r4.addActionListener(this);
    r5.addActionListener(this);
    
    // Выделение первой радиокнопки во второй группе.
    r4.setSelected(true);

    // Задание первоначального заголовка окна.
    sel0 = r1.getText();
    sel1 = r4.getText();
    setTitle(sel0 + " " + sel1);
  }

  public void actionPerformed(ActionEvent e) {
    // Изменение заголовка окна в зависимости от выбранной радиокнопки.
    String s = e.getActionCommand();

    // Выясняем изменения в первой группе радиокнопок.
    if(s==r1.getText() || s==r2.getText() || s==r3.getText()){
      sel0 = s;
    }
    // Выясняем изменения во второй группе радиокнопок.
    if(s==r4.getText() || s==r5.getText()){
      sel1 = s;
    }

    setTitle(sel0 + " " + sel1);
  }

  public static void main(String[] args) {
    // Создание главного окна.
    new MyFrame().setVisible(true);
  }

  public void windowClosing(WindowEvent ev) {
    System.exit(0);
  }
}

Отличия тут от листинга предыдущего урока следующие - во-первых, мы добавили еще несколько радиокнопок (r4 и r5), добавили для них группу (bg1). Это мы делали точно также, как и на прошлом уроке. Кроме того, мы сразу в конструкторе выделили первые радиокнопки в каждой группе (через вызов метода setSelected).

Во-вторых, так как у нас две группы, а обработчик для них один, то мы завели в классе две переменные sel0 и sel1 типа String для каждой группы. Каждая из этих переменных просто хранит текст выбранной радиокнопки из каждой группы.

В-третьих, мы в методе actionPerformed выясняем изменения в первой и второй группах радиокнопок и устанавливаем соотвествующий заголовок окна.

Наша программа в работе будет выглядеть так, как и ожидалось - в заголовке окна будут показаны одновременно тексты выбранных радиокнопок из каждой группы.

Рассылки сайта progs.biz
Visual C++, MFC
C# и .NET
VB.NET
ASP.NET
Win API
C/C++
Delphi
Java
HTML, PHP, mySQL, WEB-дизайн
Flash MX
C++ Builder
Ассемблер
SQL Server
DirectX
Обзор книг
Обзор программ
Новости сайта progs.biz


PARKING.RU. Качественный ВИРТУАЛЬНЫЙ ХОСТИНГ на платформе Windows(r): поддержка NET, многофункциональная панель управления, аренда бизнес-приложений, сертифицированные специалисты. Управляемый ВЫДЕЛЕННЫЙ ХОСТИНГ на платформе Windows(r): производительные серверы, профессиональная поддержка, аренда ПО Microsoft(r), безопасность, гарантии. http://www.parking.ru


Копирование любых материалов сайта без разрешения авторов и владельцев сайта запрещено.
© 2002-2005 сайт progs.biz
© 2002-2005 Игорь Алексеев

Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.javalessons
Отписаться
Вспомнить пароль

В избранное