Лекция: Swing: кнопка с двумя состояниями

 

В библиотеке swing наряду с обычной кнопкой есть кнопка с двумя состояниями — нажатом и отжатом. Она работает приблизительно как checkbox, только выглядеть по-другому. Для создания такой кнопки в приложении мы используем класс JToggleButton.

 

Вот пример использования такой кнопки:

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class MyFrame

extends JFrame {

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

public JToggleButton button;

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

public MyFrame(){

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

setLocation(400, 200);

setSize(200, 200);

setTitle(«Title»);

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

Container con = getContentPane();

con.setLayout(new FlowLayout());

 

// Создание кнопки (срузу нажатой).

button = new JToggleButton(«Press me», true);

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

con.add(button);

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

button.addItemListener(new ItemListener(){

public void itemStateChanged(ItemEvent e){

// Изменение заголовка окна.

if(button.isSelected())

{

setTitle(«Button is selected»);

}

else

{

setTitle(«Button isn't selected»);

}

 

}

});

}

 

public static void main(String[] args) {

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

new MyFrame().setVisible(true);

}

 

public void windowClosing(WindowEvent ev) {

System.exit(0);

}

}

 

Часть нашей программы, в которой мы создаем окно, такая же, как и выше. Отличие только в том, что мы используем класс JToggleButton. С ним мы работаем как всегда — создаем экземпляр, вызываем конструктор (обратите внимание, что в конструкторе мы поставили второй параметр в true, что означает, что кнопка уже нажата), добавляем кнопку к контейнеру и добавляем обработчик для изменения состояния кнопки, в котором мы просто меняем заголовок нашей программы. Обратите внимание, что мы при добавлении этого обработчика указываем itemStateChanged — т. е. нас интересует не столько нажатие на кнопку, сколько изменение ее состояния.

 

После запуска нашей программы полуаем ожидаемый результат — кнопку с двумя состояниями (при этом в нажатом состоянии кнопка более темная):

 

еще рефераты
Еще работы по информатике