Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otvety_k_gosam (1).doc
Скачиваний:
9
Добавлен:
01.04.2025
Размер:
4.61 Mб
Скачать
  1. Принципы программирования оконных приложений на Java.

Awt определяет окна согласно иерархии классов которые с каждым уровнем добавляет новые функции и специфику. Существует 2 основных типа окон производное от Panel (в апплете), и Frame – стандартное окно. Panel - это окно не содержащее заголовков строк меню и обрамления. Window создает окно верхнего уровня. Frame подкласс Window имеет строку заголовка, строку меню, обрамления и углы измен размеры окна. Canvas генерирует пустое окно в котором можно рисовать.

//создать фрейм окно

public class AppletFrame extends Applet {

Frame f;

public void init() {

f = new SampleFrame(“Frame”);

f.setSize(250,250);

f.setVisible(true);

}

public void start() {

f.setVisible(true);

}

public void stop() {

f.setVisible(false);

}

public void paint (Graphics g) {

g.drawString(“AppletWindow”,10,20);

}

}

Окно – контейнер для разнообразной информации (текста, графики и т.д.). Средства AWT ориентированы на поддержку этих возможностей.

Обзор компонентов AWT.

основные компоненты:

  1. кнопки

  2. текстовые метки

  3. флажки

  4. списки с выбором элементов

  5. списки

  6. полосы прокрутки

  7. элементы редактирования текста: текстовые поля и текстовые метки.

Текстовая метка - это объект класса Label, содержащий строку, которую она отображает. Метки – пассивные элементы управления, которые не поддерживают никакого взаимодействия с пользователем.

Label(String str)

Кнопка – это компонент, который содержит текстовую метку и генерирует событие, когда ее нажимают.

Button(String str)

Флажок – это элемент управления, который используется для включения или выключения некоторой опции. Возможно создание набора взаимоисключающих флажков. CheckBox(String str, boolean on)

Класс Choice используется для создания раскрывающихся списков, из которых можно сделать выбор. Каждый элемент в списке это строка, которая выровнена по левому краю и появляется в списке в том порядке, в котором добавлялась к объекту. Класс Choice определяет только конструктор, который создает пустой список. Чтобы добавить элемент выбора используются методы addItem() или add().

Класс List обеспечивает компактный многоэлементный список со множественным выбором и прокруткой. В отличие от объекта Choice, который показывает в меню только один выбранный элемент, List- объект может быть сконструирован так, чтобы отображать любое число элементов выбора в видимом окне.List(int numRows)

Полосы прокрутки используются для выбора непрерывных значений из некоторого интервала с конечными границами. Они бывают горизонтальными и вертикальными. Scrollbar(int style)

TextField реализует однострочную область ввода текста. Текстовые поля дают возможность пользователю вводить строки и редактировать текст, используя клавиши-стрелки, сочетания клавиш для операций «вырезать» и «вставить». TextField()

Иногда однострочный текстовый ввод не достаточен, поэтому используют TextArea.

Обзор компонентов Swing.

Swing – это набор классов, который обеспечивает более мощные и гибкие компоненты, чем AWT. В дополнение к знакомым компонентам типа кнопок, флажков и т.п. Swing поставляет панели со вкладками, панели с прокруткой, деревья и таблицы. Даже знакомые компоненты такие как кнопки имеют больше возможностей. Например с кнопкой можно связать как изображение так и текстовую строку. кроме того изображение может меняться когда меняется состояние кнопки. Swing компоненты платформо независимы, потому что написаны полностью на Java. Фундаментальными для Swing является класс JApplet, который расширяет класс Applet. Апплеты, которые используют Swing-компоненты д/б подклассами JApplet.

В Swing значки инкапсулированы классом ImageIcon, который рисует значок из изображения. ImageIcon(String filename)

Поле текста Swing JTextField позволяет редактировать одну строку текста. JTextField(int cols)

Кнопки Swing обладают свойствами которых нельзя найтив классе Button определенном в AWT. Класс JButton позволяет связать с кнопкой изображение, строку или и то и другое. JButton(Icon i)

Переключатели поддерживаются классом JRadioButton. JRadioButton(icon i). Переключатели д/б объед в группу, где в каждый момент м/б выбран только один элемент.

Swing обеспечивает комбинированное поле – комбинацию текстового поля и раскрывающегося списка через класс JComboBox. Комбинированное поле обычно отображает один элемент списка. Однако оно может также отображать и раскрывающийся список, который дает возможность пользователю выбирать различные входы. JComboBox(Vector v)

Панель со вкладками – компонент который появляется как группа папок. Каждая папка имеет заголовок. Только одна из папок может быть выбрана одновременно. Используется умалчиваемый конструктор JTabbedPane.

Панель прокрутки – компонент который может быть просмотрен. JScrollPane(Component comp)

Дерево – компонет который представляет собой иерархический вид данных. Пользователь может развернуть/свернуть индивидуальные поддеревья в этом показе. JTree(Object obj[])

Таблицы – компонет который отображает строки и столбцы данных. JTable(Object data[][],Object colHeads[])

Swing имеет еще много свойств например Swing обеспечивает инструментальные панели (toolbars), подсказки кнопочных команд (tooltips), прогресс-полоски (progress bars) и т.д.

Пример с использованием компонентов Swing.

демонстрирует 4 кнопки и текстовое поле. Каждая кнопка отображает пиктограмму, которая представляет флажок страны. Когда кнопка нажимается в текстовом поле выводится название страны.

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

/*

<applet code=”demo” width=300 height=300>

</applet>

*/

public class Demo extends JApplet

implements ActionListener {

JTextField jtf;

public void init() {

//получить панель содержания

Container contentPane = getContentPane();

contentPane.setLayout(new FlowLayout());

//добавить кнопки в панель содержания

ImageIcon france = new ImageIcon(“france.gif”);

JButton jb = new JButton(france);

jb.setActionCommand(“France”);

jb.addActionListener(this);

contentPane.add(jb);

ImageIcon germany = new ImageIcon(“germany.gif”);

jb = new JButton(germany);

jb.setActionCommand(“germany”);

jb.addActionListener(this);

contentPane.add(jb);

ImageIcon italy = new ImageIcon(“italy.gif”);

jb = new JButton(italy);

jb.setActionCommand(“italy”);

jb.addActionListener(this);

contentPane.add(jb);

ImageIcon japan = new ImageIcon(“japan.gif”);

jb = new JButton(japan);

jb.setActionCommand(“japan”);

jb.addActionListener(this);

contentPane.add(jb);

//добавить текстовое поле в панель содержания

jtf = new JTextField(15);

contentPane.add(jtf);

}

public void actionPerformed(ActionEvent ae) {

jtf.setText(ae.getActionCommand());

}

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]