Елементи управління в JAVA, Блог про шифрування
Усі елементи управління з пакету AWT є спадкоємцями класівComponentіContainer. При використанні пакету Swing компоненти успадковуються від класуJComponent, похідного від класуContainer.
Як приклади можна навести текстові міткиLabel,JLabelякі створюються за допомогою конструкторів, які встановлюють текст мітки. Можливість зміни тексту мітки надає методsetText(Stringtxt). Отримати значення тексту мітки можна методомgetText().
КнопкиButtonіJButton,CheckBoxіJCheckBox,RadioButtonіJRadioButton,JToggleButtonвикористовуються для генерації та обробки подій.
СпискиListіJListдозволяють вибирати один або кілька елементів зі списку.
Однорядкова область введенняTextFieldіJTextFieldта багаторядкова область введення –TextAreaіJTextAreaдозволяють редагувати та вводити текст (див. рис. 13.6).
Суперкласом кнопок є класAbstractButton, від якого успадковуються два найбільш використовувані класи:JButtonіJToggleButton. Перший призначений для створення звичайних кнопок, а другий – для створення кнопок, що залипають, радіокнопок (класJRadioButton) і кнопок (класJCheckBox). Крім зазначених, відAbstractButtonуспадковується два класиJCheckBoxMenuItemіJRadioButtonMenuItem, що використовуються для організації меню з радіокнопками та кнопками, що відзначаються (див. рис. 13.7).

Мал. 13.6.Ієрархія успадкування компонентів убібліотеці Swing

Мал. 13.7.Класи кнопок у Swing
Процес створення кнопок досить простий: викликається конструкторJButtonіз міткою, яку потрібно помістити на кнопці. КласJButtonбібліотеки Swing для створення звичайних кнопок пропонує кілька конструкторів:JButton(),JButton(Strings),JButton(Iconi),JButton(Strings,Iconi).
// приклад # 6 : кнопка та її методи:VisualEx.java
publicclassVisualExextendsJApplet
privateJPanel jContentPane =null;
privateJButton yesBtn =null;
privateJButton noBtn =null;
privateJLabel label =null;
privateJTextField textField =null;
privateJPanel getJContentPane()
label =newJLabel();
jContentPane =newJPanel();
privateJButton getYesBtn()
yesBtn =newJButton();
publicvoidactionPerformed(ActionEvent e)
privateJButton getNoBtn()
noBtn =newJButton();
publicvoidactionPerformed(ActionEvent e)
privateJTextField getTextField()
textField =newJTextField();

Мал. 13.8.Аплет з кнопками, міткою та текстовим полем
МетодgetSource()повертає посилання на об'єкт, що став джерелом події, який перетворюється на об'єктJButton. МетодgetText()у вигляді рядка витягує текст, який зображено на кнопці, та поміщаєйого за допомогою методуsetText()об'єктаJLabelв об'єктlbl. При цьому визначається яка з кнопок була натиснута.
Для відображення результату натискання кнопки використано компонентJTextField, що представляє собою поле, де може бути розміщений та змінений текст. Хоча є кілька способів створенняJTextFieldНайпростішим є повідомлення конструктору потрібної ширини текстового поля. Як тількиJTextFieldпоміщається на форму, можна змінювати вміст, використовуючи методsetText(). Реалізацію дій, асоційованих з натисканням кнопки, краще проводити в потоці, щоб уникнути "зависання"
КласJComboBoxзастосовується для створення списку, що розкривається, альтернативних варіантів, з яких користувачем проводиться вибір. Таким чином, цей елемент керування має форму меню. У неактивному стані компонент типуJComboBoxзаймає стільки місця, щоб відображати лише поточний вибраний елемент. Для визначення вибраного елемента можна викликати методgetSelectedItem()абоgetSelectedIndex(). Щоб зробити елемент редагованим, слід використати методsetEditable(booleaneditable). Існують методи зі вставлення та видалення елементів списку під час виконання програмиinsertItemAt(intpos)іremoveItemAt(intpos).
// приклад # 7 : простий список, що випадає:ComboBoxEx.java
publicclassComboBoxExextendsJApplet
privateJTextField textField =newJTextField(2);
privateJComboBox comboBox =newJComboBox();
privateMap exams =
privateclassComboListenerimplementsItemListener
// реакція на зміну поточного значення ComboBox
publicvoiditemStateChanged(ItemEvent ev)