Swing: элемент JCheckBox

 

Элемент JCheckBox - это обычный checkbox (флажок). Он имеет вид квадратика, в котором может стоять (или не стоять) галочка. Этот элемент может иметь 22 состояния - либо включенное, либо выключенное. При этом состояние каждого флажка не зависит от других флажков.

 

Посмотрим, как практически сделать такой элемент.

 

Вот полный код:

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class MyFrame

extends JFrame {

// Переменная для checkbox'а.

public JCheckBox checkBox;

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

public MyFrame(){

setDefaultCloseOperation(EXIT_ON_CLOSE);

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

setLocation(400, 200);

setSize(200, 200);

setTitle("Title");

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

Container con = getContentPane();

con.setLayout(new FlowLayout());

 

// Создание checkbox'а.

checkBox = new JCheckBox("Java");

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

con.add(checkBox);

 

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

checkBox.addItemListener(new ItemListener(){

public void itemStateChanged(ItemEvent e){

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

if(checkBox.isSelected())

{

setTitle("CheckBox is selected");

}

else

{

setTitle("CheckBox isn't selected");

}

}

});

}

 

public static void main(String[] args) {

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

new MyFrame().setVisible(true);

}

 

public void windowClosing(WindowEvent ev) {

System.exit(0);

}

}

 

Самые существенные части этого кода следующие:

 

Во-первых, мы объявляем переменную для нашего checkbox'а:

public JCheckBox checkBox;

 

Во-вторых, мы этот checkbox создаем и присоединяем к нашему контейнеру:

// Создание checkbox'а.

checkBox = new JCheckBox("Java");

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

con.add(checkBox);

 

В конструкторе мы сразу указываем ту надпись, которая будет рядом с checkbox'ом.

 

И в-третьих, мы добавляем обработчик для нашего checkbox'а:

checkBox.addItemListener(new ItemListener(){

public void itemStateChanged(ItemEvent e){

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

if(checkBox.isSelected())

{

setTitle("CheckBox is selected");

}

else

{

setTitle("CheckBox isn't selected");

}

}

});

 

В этом обработчике мы просто меняем заголовок окна программы.

 

Результат выполнения программы будет таким: