Delphi | Сети | ПК | Маршрутизаторы | Моделирование | Протоколы | Экспертные системы | Удаленный доступ | Доменные имена
Аплеты | SQL | Надежность | Задачи | Информационные процессы | JAVA | Отказы изделия | Расчет надежности показателей | Инфсис

Основные компоненты в Java

Для работы с Java необходимы следующие программные средства: " JDK, " графическая оболочка, " справочная система. Базовая часть средств разработки программ на Java представлена в программном комплексе JDK (Java Developer Kit) от компании Sun. Не путайте JDK с JRE (Java Runtime Environment). Второй является составной частью первого и служит только для запуска Java-программ, но никак не для их создания.

Компонент Checkbox

Компонент checkbox — это надпись справа от небольшого квадратика, в котором в некоторых графических системах появляется галочка после щелчка кнопкой мыши — компонент переходит в состояние (state) on. После следующего щелчка галочка пропадает — это состояние off. В других графических системах состояние on отмечается "вдавливанием" квадратика. В компоненте checkbox состояния on/off отмечаются логическими значениями true/false соответственно.

Три конструктора Checkbox (), Checkbox (String label), Checkbox (String label,

boolean state) создают компонент без надписи, с надписью label в состоянии off, и в заданном состоянии state.

Методы доступа getLabelO, setLabel (String label), getState(), setstate (boolean state) возвращают и изменяют эти параметры компонента.

Компоненты checkbox удобны для быстрого и наглядного выбора из списка, целиком расположенного на экране, как показано на рис. 10.1. Там же продемонстрирована ситуация, в которой нужно выбрать только один пункт из нескольких. В таких ситуациях образуется группа так называемых радиокнопок (radio buttons). Они помечаются обычно кружком или ромбиком, а не квадратиком, выбор обозначается жирной точкой в кружке или "вдавливанием" ромбика.

События

В классе Checkbox происходят события класса Component: ComponentEvent, FocusEvent, KeyEvent, MouseEvent, апри изменении состояния кнопки возникает событие ItemEvent.

В библиотеке AWT радиокнопки не образуют отдельный компонент. Вместо этого несколько компонентов checkbox объединяются в группу с помощью объекта класса checkboxGroup.

Класс CheckboxGroup

Класс CheckboxGroup очень мал, поскольку его задача — просто дать общее имя всем объектам checkbox, образующим одну группу. В него входит один конструктор по умолчанию CheckboxGroup () и два метода доступа:

Как создать группу радиокнопок

Чтобы организовать группу радиокнопок, надо сначала сформировать объект класса CheckboxGroup, а затем создавать кнопки конструкторами

Checkbox(String label, CheckboxGroup group, boolean state) 

Checkbox(String label, boolean state, CheckboxGroup group)

Эти конструкторы идентичны, просто при записи конструктора можно не думать о порядке следования его аргументов.

Только одна радиокнопка в группе может иметь состояние state = true.

Пора привести пример. В листинге 10.1 приведена программа, помещающая в контейнер Frame две метки Label сверху, под ними слева три объекта checkbox, справа — группу радиокнопок. Внизу — три кнопки Button. Результат выполнения программы показан на рис. 10.1.

Листинг 10.1. Размещение компонентов 

import java.awt.*; 

import j ava.awt.event.*;

class SimpleComp extends Frame{ 

SimpleComp(String s){ super(s); 

setLayout(null);

Font f = new Font("Serif", Font.BOLD, 15); 

setFont(f);

Label 11 = new Label("Выберите товар:", Labe1.CENTER); 

l1.setBoundsdO, 50, 120, 30); add(11); 

Label 12 = new Label("Выберите способ оплаты:"); 

l2.setBounds(160, 50, 200, 30); add(12);

Checkbox chl = new Checkbox("Книги"); 

chl.setBounds(20, 90, 100, 30); add(chl); 

Checkbox ch2 = new Checkbox("Диски"); 

ch2.setBounds(20, 120, 100, 30); add(ch2); 

Checkbox ch3 = new Checkbox("Игрушки"); 

ch3.setBounds(20, 150, 100, 30); add(ch3);

CheckboxGroup grp = new CheckboxGroup();

Checkbox chgl = new Checkbox("Почтовым переводом", grp,-true);

chgl.setBounds{170, 90, 200, 30); add(chgl);

Checkbox chg2 = new Checkbox{"Кредитной картой", grp, false);

chg2.setBounds(170, 120, 200, 30); add(chg2);

Button b1 = new Button("Продолжить"); 

bl.setBounds( 30, 220, 100, 30); add(bl)); 

Button b2 = new Button("Отменить"); 

b2.setBounds(140, 220, 100, 30); add(b2); 

Button b3 = new Button("Выйти"); 

b3.setBounds(250, 220, 100, 30); add(b3);

setSize(400, 300);

setVisible(true); 

public static void main(String[] args)(

Frame f = new SimpleComp (" Простые компоненты");

f.addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent ev){

System.exit(0); 

}

}); 

}

Рис. 10.1. Простые компоненты

Заметьте, что каждый создаваемый компонент следует заносить в контейнер, в данном случае Frame, методом add(). Левый верхний угол компонента помещается в точку контейнера с координатами, указанными первыми двумя аргументами метода setBounds(). Размер компонента задается последними двумя параметрами этого метода.

Если нет необходимости отображать весь список на экране, то вместо группы радиокнопок можно создать раскрывающийся список — объект класса Choice.

Математический анализ, лекции по физике Компьютерные сети