Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
50
Добавлен:
08.06.2015
Размер:
32.26 Кб
Скачать

Практическая работа №8

Задание на практическую работу

В процессе написания тестовых заданий ознакомьтесь с базовыми принципами создания оконных приложений, технологией Swing, обработкой событий, применением вложенных классов.

Задание 1

Если вы этого еще не сделали, измените реализации некоторых созданных ранее классов так, чтобы они стали вложенными, внутренними, локальными или анонимными. Подумайте, для каких классов это имеет смысл и позволяет повысить эффективность и простоту программы.

Задание 2

Создайте оконное приложение Swing, реализующее работу со зданиями.

Окно приложения должно содержать главное меню, в котором должен быть пункт File, открывающий меню из двух элементов: «Open dwelling…» и «Open office building…». При выборе этих элементов должен выводиться диалог открытия файла (следует использовать объект класса JFileChooser). После выбора файла программа должна считать из него информацию о здании (формат файла определяется методом Buildings.writeBuilding()). В зависимости от выбранного пункта меню должен создаваться объект либо жилого здания, либо офисного здания (для этого следует использовать созданный ранее механизм фабрик). В случае возникновения ошибок при чтении следует вывести окно с сообщением об ошибке (используйте статические методы класса JOptionPane).

Основная видимая область окна должна содержать три информационных панели и одну панель с планом здания. В первой информационной панели должна выводиться общая информация о текущем здании: тип здания, количество этажей и общая площадь. Во второй – информация о выбранном этаже: номер этажа, количество помещений, общая площадь. В третьей – информация о выбранном помещении: номер в здании, количество комнат, общая площадь.

В панели с планом здания должно упрощенно отображаться визуальное представление здания. Каждому этажу должна соответствовать своя панель с обозначенной границей, панели этажей должны располагаться друг под другом (используйте, например, менеджер компоновки BoxLayout). Внутри панели этажа слева направо должны располагаться кнопки, обозначающие помещения (используйте, например, менеджер компоновки FlowLayout). Если этажей или помещений больше, чем помещается в окне, по краям панели с планом здания должны возникать полосы прокрутки.

При нажатии на панель этажа в информационной панели должна выводиться информация об этаже. При нажатии на кнопку помещения в информационной панели должна выводиться информация о помещении.

Задание 3

Добавьте в главное меню новый пункт Look&Feel, содержащий группу радиокнопок. Названия радиокнопок должны соответствовать различным доступным PLaF. При выборе пользователем одного из предлагаемых значений соответствующим образом должен изменяться внешний вид программы. Для получения списка доступных стилей воспользуйтесь методом UIManager.getInstalledLookAndFeels().

Примечание

В ходе создания приложения рекомендуется использовать средства визуального программирования в среде разработки. Естественно, для создания меню Look&Feel и панели с планом здания потребуется создавать и компоновать объекты динамически.

Также вам предлагается ознакомиться работой готового решения.