Как создать флажки опций в Java

Как создать флажки опций в JavaЕсли данные сводятся к ответы "да" или "нет", используйте компонент - флажок опций(checkbox). Чтобы установить флажок, нужно щелкнуть мышью на компоненте, а для того чтобы сбросить флажок - щелкнуть повторно. Установить или сбросить флажок можно также с помощью клавиши пробела, нажав ее в момент, когда на компоненте находится фокус ввода.

На рис.1 показано простое окно программы с двумя флажками опций, один из которых включает и отключает курсив, а другой - полужирный шрифт.

Обратите внимание на то, что первый флажок обладает фокусом ввода. Об этом говорит прямоугольная рамка вокруг его метки. Каждый раз, когда пользователь щелкает на флажке, содержимое окна обновляется с учетом нового атрибута шрифта.

Как создать флажки опций в JavaРис.1 Флажки опций

Флажки опций сопровождаются метками, указывающими их предназначение. Текст метки задается в конструкторе:

bold = new JCheckBox("Bold");

Для установки и сброса флажка используется метод setSelected(). Например:

bold.setSelected(true);

Метод isSelected() позволяет определить текущее состояние каждого флажка. Если значение равно false, значит он сброшен, а если true - установлен.

Щелкая на флажке, пользователь инициирует события. Как всегда, вы можете связать с данным компонентом объект-слушатель. В нашей программе для двух кнопок предусмотрен один и тот же слушатель действий:

ActionListener listener = ...
bold.addActionListener(listener);
italic.addActionListener(listener);

В методе actionPerformed() обработчика запрашивается текущее состояние флажков bold и italic, а затем устанавливается шрифт, которым должен отображаться обычный текст: полужирный, курсив или полужирный курсив.

public void actionPerformed(ActionEvent event)
{
int mode = 0;
if(bold.isSelected()) mode += Font.BOLD;
if(italic.isSelected()) mode += Font.ITALIC;
label.setFont(new Font("Serif", mode, FONTSIZE));
}

Ниже приведен полный исходник программы, демонстрирующей работу с флажками опции:

import java.awt.*;
import java.awt.event.*;

import javax.swing.*;
public class CheckBoxTest {

public static void main(String[] args) {
EventQueue.invokeLater(new Runnable()
{
public void run()
{
CheckBoxFrame frame = new CheckBoxFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
});
}

}
class CheckBoxFrame extends JFrame
{
public CheckBoxFrame()
{
setTitle("CheckBoxTest");
setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);

//   .

label = new JLabel("Java is the programming language");
label.setFont(new Font("Serif", Font.PLAIN, FONTSIZE));
add(label, BorderLayout.CENTER);

//     ,
//    ,  
//    .
ActionListener listener = new ActionListener() {

public void actionPerformed(ActionEvent event) {
int mode = 0;
if(bold.isSelected()) mode += Font.BOLD;
if(italic.isSelected()) mode += Font.ITALIC;
label.setFont(new Font("Serif", mode, FONTSIZE));
}
};
//   

JPanel buttonPanel = new JPanel();

bold = new JCheckBox("Bold");
bold.addActionListener(listener);
buttonPanel.add(bold);

italic = new JCheckBox("Italic");
italic.addActionListener(listener);
buttonPanel.add(italic);

add(buttonPanel, BorderLayout.SOUTH);
}
public static final int DEFAULT_WIDTH = 300;
public static final int DEFAULT_HEIGHT = 200;

private JLabel label;
private JCheckBox bold;
private JCheckBox italic;
private static final int FONTSIZE = 12;
}

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *