Елементи управління в 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

JButton

Мал. 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();

JButton

Мал. 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)