6.2 Создание GUI
Графический Интерфейс пользователя (GUI) используется, чтобы принимать более дружественный вид для пользователей. GUI изменяется от приложения к приложению и может состоять из текстовых полей вода, меток, списков и других различных элементов. Различные языки программирования обеспечивают различные пути и средства создания GUIs; VB или VC ++ могут обеспечить подход "drag and drop" для создания GUI, тогда как С ++ требует, чтобы программист написал полный код для формирования GUI.
В общем, элемент GUI создается, используя следующую процедуру:
1. Создайте элемент. Например, checkbox или label или listbox и т.д..
2. Определите его начальное появление.
3. Определите, должен ли он занимать определённую позицию или любую заданную по умолчанию.
4. Добавьте его на экран.
Abstract Windowing Toolkit (AWT) - набор классов Java, которые позволяют нам создавать графический интерфейс пользователя (GUI) и принимать пользовательский ввод через клавиатуру и мышь. AWT обеспечивает нас различными элементами, которые позволяют создавать привлекательный и эффективный GUI.
■ Контейнеры
■ Компоненты
■ Менеджеры компоновки
■ Графика и рисование
■ Шрифты
■ События
6.2.1 Контейнер
Контейнер - область, которая может содержать элементы. Контейнер подобно окну. Также как и окно, контейнер может иметь рамки, области окна, замки и зацепки, контейнер может содержать меньшие по размерам компоненты. Мы можем иметь стеклянные области окна или толстые ставни, поэтому мы и можем открыть или закрыть окно.
В пакете
java.awt есть класс по имени
Container, который непосредственно или косвенно получает две обычно используемых контейнера Frame (фрейм) и Panel (панель).
Фреймы и Панели - обычно наиболее используемые контейнеры. Фрейм - отдельное окно, тогда как Панель - область, находящиеся в пределах окна. Панель не имеет границ и отображается в пределах окна, отображаемого с помощью браузера или appletviewer. Appletviewer - инструмент, обеспеченный JDK, чтобы просматривать апплет. Фрейм - подкласс Окна и отображается в пределах отдельного окна, и имеет границы.
6.2.2 Фрейм
Фрейм - окно, которое является независимым от апплета и от браузера. Он может использоваться как контейнер или как компонент. Он может быть создан, используя конструкторы следующим образом:
Frame()
Создаёт фрейм, который является невидимым
Frame(String title)
Создаёт невидимый фрейм с данным заголовком Пример 1 показывает, как создавать фрейм.
Пример 1:
import j ava.awt.*;
class FrameDemo extends Frame {
public FrameDemo(String title) {
super(title);
}
public static void main (String args[]) {
FrameDemo f=new FrameDemo( I have been Framed!!! ) ;
f.setSize(500,500);
f.setVisible(true);
}
}
Определяемый пользователем класс FrameDemo - подкласс класса Frame. Этот класс (FrameDemo) имеет конструктор, в котором мы вызываем метод super (), который в свою очередь вызовет конструктор суперкласса (в данном случае Frame). Цель super () здесь состоит в том, чтобы вызвать родительский конструктор класса, который тогда создаст объект дочернего класса для создания фрейма. Кроме того, это также позволит объекту фрейма быть доступным через возможности класса. Однако, фрейм будет невидим и не имеет никаких измерений. Чтобы позаботится об этом, мы используем два метода в методе main() -
setSize () и
setVisible ().
Вывод был бы как показано на рисунке 6.2.
Рисунок 6.2: Вывод примера 1
6.2.3 Панель
Панель - конкретный подкласс Container и используется, чтобы объединять различные компоненты вместе. Самый простой способ создания Панели - через ее конструктор
Panel ().
Пример 2 показывает, как создать панель.
Пример 2:
import j ava.awt.*;
class PanelTest extends Panel {
public static void main(String args []) {
PanelTest p= new PanelTest();
Frame f=new Frame( Testing a Panel! );
f.add(p);
f.setSize (400,400) ;
f.setVisible(true);
}
}
Так как мы не можем увидеть панель непосредственно, мы должны добавить её к фрейму. Итак, мы создаем новый Фрейм и добавляем недавно созданную Панель к Фрейму. Однако, фрейм будет невидим и не имеет никаких измерений. Мы используем два метода в методе main () -
setSize () и
setVisible (), чтобы установить размер и отобразить фрейм соответственно.
Вывод показан на рисунке 6.3.
Рисунок 6.3: Вывод примера 2