Глава 10 (продолжение )
Вверх
Класс Graphics позволяет выводить геометрические фигуры, строки и изображения, а так же задавать шрифты, цвета и тд. Объектами класса Component являются такие элементы как кнопки, текстовые поля, меню и полосы прокрутки. Они могут быть помещены в контейнеры и выводится на экран надлежащим образом посредством одного из менеджеров размещения.
Существуют различия между программированием отображения графических фигур и элементов UI. Графические методы Java доступны в классе Graphics, их можно использовать с помощью вызовов в переопределенных методах paint и repaint. Для отображения графических элементов применяются фреймы - объекты Frame, которые являются подклассами абстрактного класса Component. При разработке GUI можно использовать компоненты из широкого диапазона: объекты классов Button, ScrollBar, TextField и тд. Подпакет Swing является альтернативой пакету awt и предоставляет платформенно-независимые элементы и функции GUI.
В этой главе не раскрывались понятия, связанные с ключевыми словами, но широко использовались API пакета java.awt. Рассматривались такие пакеты, классы, методы:
Резюме
Подпакет java.awt.event служит для обработки внешних событий, таких как нажатие кнопок и закрытие окна, с помощью набора обработчиков, слушателей и адаптеров.
Подпакет java.awt.image пакета awt используется для внедрения изображений в разнообразных форматах.
java.avt
|
setTitle
|
Следующий перечень включает темы, на которых в главе сделано особое ударение:
Вверх
10.1 Чтобы скомпилировать программу GUI необходимо:
10.2 Круг, создаваемый посредством метода drawOval(300, 20, 50, 50) во рейме размером 600х400, будет позиционирован:
10.4 Для GU приложения, созданного в Java, менеджером размещения по умолчанию является
10.5 При выполнении GUI-программы нажатие некоторой кнопки ни к чему не привело.
10.6 ActionListener - это:
10.7 Ниже приведен альтернативный вариант двух операторов из примера 10.3:
Какое высказывание является верным?
10.8 Какой из операторов предназначен для обращения к менеджеру BorderLayout?
10.9 Сколько фреймов создается на заключительном этапе выполнения программы FlagMaker2 из примера 10.3?
10.10. Наиболее значительное различие между пакетами awt и swing заключается в том, что:
Вверх
Примечание. Первые три задачи связаны с разработкой и программированием GUI. В них не обязательно организовывать обработку событий - для проверки GUI достаточно, чтобы обработчик выдал собщение о том, что произошло определенное событие. Такое сообщение может быть сделано посредством метода System.out.println и выведено в консольном окне Java или в командном окне MS-DOS.
10.1 Электронные часы. Разработайте эмулятор электронных часов с цифровой индикацией. Сымитируйте работу часов. Для изменения значения времени должен использоваться цикл.
10.2 Пульт управления. Реализуйте пользовательский интерфейс, имитирующий пульт управления телевизором.
10.3 Сотовый телефон. Разработайте экранную версию сотового телефона.
10.4 Дверной замок. Отдел безопасности Саванны занимается изготовлением дверных и цифровых замков с десятью кнопками, на которых указаны цифры от 0 до 9. с двумя кнопками: Индикатор и Открыть. При нажатии корректной последовательности из четырех цифр и кнопки Открыть загорается зеленая лампочка. В противном случае загорается красная лампочка. Создайте GUI-программу, обеспечивающую работу такого замка. Протестируйте ее, введя заранее в программу пять комбинаций цифр, которые пользователь должен выбрать, чтобы загорелся зеленый свет
10.5 Система безопасности. После того, как выпуск замков был налажен, потребовалось специальное программное обеспечение. Напишите небольшую программу, в которой обрабатываемыми данными служат номера квартир, имена людей и соответствующие коды. Обеспечьте в программе возможность назначения каждому замку корректной последовательности цифр на те случаи, если будут меняться замки, а следовательно и коды. Новый код должен вводиться с клавиатуры. При изменении кодов используйте пароль.
10.6 Усовершенствованные замки. Усовершенствованные замки должны быть снабжены тремя дополнительными кнопками: X,Y,Z. Создайте фрейм, который наследовал бы фрейму, описанному в GUI-программе из задачи 10.4, и введите дополнительную информацию. Как программа из задачи 10.5 будет работать с обоими видами замков после незначительных изменений?
10.7 Светофоры. Усовершенствуйте программу из примера 10.5 таким образом, чтобы получить на экране два идентичных изображения светофора. Рассмотрите различные способы их представления: в виде двух различных фреймов и в виде двух холстов в одном фрейме.
10.8 Улучшенная программа FlagMaker. Программа FlagMaker2 из примера 10.3 будет обновлена в главе 11, а сейчас можно произвести некоторые интересные усовершенствования. Замените три фиксированных текстовых объекта в конструкторе GUI собственной разработкой, позволяющей вводить четыре параметра (название страны и три цвета) в интерактивном режиме.
Назад |
Начало урока |
Вверх |
Вперед
Вопросы
наследовать классу Frame
использовать метод setVisible(true)
вызвать метод repaint
в верхней части фрейма слева
в верхней части фрейма по центру
в центре
setFont(sanserif, bold);
g.setFont(Font.sanSerif. Font,Bold, size);
g.setFont(new Font(Font.SansSerif.Font.BOLD, size);
g.setFont(new Font("SansSerif", Font.BOLD, size);
FlowLayout
BorderLayout
Flow center
менеджер по умолчанию не назначается
Причина возможно заключается в том, что:
кнопка не связана со слушателем
нет обработчика для события, источником возникновения которого является кнопка
переменная кнопки присвоена другой кнопке
интерфейс, который программа должна реализовать
класс, наследуемый программой
метод, который вызывает программу при наступлении события
p.add(new Button ("Перезагрузить");
add("South", p);
первый метод add относится к панели, а второй - к фрейму
если мы записываем второй метод add должны включить в него панель p.
для размещения панели p используется менеджер BorderLayout
setLayout(BorderLayout);
setLayout(new BorderLayout);
setLayout(new BorderLayout());
setLayout(new BorderLayout(), CENTER);
три
четыре
ни одного
методы Swing ориентируются на вид и функции конкретной платформы
методы Swing более эффективны
методы Swing реализуются независимо от какой-либо конкретной платформы
Задачи
Содержание