3.3
Компоненты и контейнеры
Все примеры программ, которые мы рассмотрели с вами до этого момента были
на основе текстового вывода. Они называются приложениями командной строки,
которые взаимодействуют с пользователем с помощью простых текстовых подсказок.
Давайте рассмотрим некоторые Java-приложения, в которых используются
57
графические компоненты. Эти компоненты будут служить основой для программ,
которые представляют настоящие графические интерфейсы пользователя (GUIs).
Компоненты GUI
Компонент GUI это объект, который представляет собой элементы
представленные на экране, такие как кнопки или текстовые поля и т.п. Связанные с
GUI классы определяются в первую очередь в пакете java.awt и в javax.swing packages.
Классы, относящиеся к пакету Abstract Windowing Toolkit (AWT) были
первоначальным пакетом для GUI в Java.
Пакет Java, который называется Swing появился позже и обеспечивает
дополнительные и более универсальные компоненты. Оба пакета необходимы для
создания GUI программ Java
Контейнеры GUI.
GUI контейнер представляет собой компонент, который используется для
хранения и организации работы с другими компонентами.
Frame (фрейм) является контейнером, который используется для отображения
основанного на GUI Java приложения. Элемент фрейм отображается как отдельное
окно с заголовком - он может быть перемещен и изменен на экране по мере
необходимости.
Элемент panel является контейнером, который не может быть отображен в
одиночку, но используется для организации других компонентов. Панель должна
быть добавлена к другому контейнеру, который будет отображаться.
GUI контейнеры можно классифицировать как тяжеловесные или легковесные.
Тяжеловесные контейнеры это те, которые находятся под управлением базовой
операционной системы.
Легковесные контейнеры это те, которые находятся под управлением самих
Java программ. Время от времени это различие важно. Фрейм является тяжеловесным
контейнером, а панель представляет собой легковесный контейнер.
Элемент Label
Элемент
label
это GUI компонент, который отображает строку текста (обычно
название), называют еще этикеткой. Этикетки обычно используются для
58
отображения информации или чтобы идентифицировать другие компоненты в
интерфейсе.
Давайте посмотрим на программу (рисунок 3.7), которая организует две
этикетки на одной панели и отображает эту панель во фрейме. Вообще-то эта
программа не является интерактивной, но зато фрейм можно перемещать и изменять
его размер.
import java.awt.*;
import javax.swing.*;
public class Authority
{
public static void main (String[] args)
{
JFrame frame = new JFrame ("Authority");
frame.setDefaultCloseOperation
(JFrame.EXIT_ON_CLOSE);
JPanel primary = new JPanel();
primary.setBackground (Color.yellow);
primary.setPreferredSize (new Dimension(250, 75));
JLabel label1 = new JLabel ("Question
authority,");
JLabel label2 = new JLabel ("but raise your hand
first.");
primary.add (label1);
primary.add (label2);
frame.getContentPane().add(primary);
frame.pack();
ф
frame.setVisible(true);
}
}
Рисунок 3.7 – Работа программы
|