Разработка интерфейса пользователя
Скачать 200.85 Kb.
|
МИНОБРНАУКИ РОССИИ Санкт-Петербургский государственный электротехнический университет «ЛЭТИ» им. В.И. Ульянова (Ленина) Кафедра Вычислительной техники отчет по Лабораторной работе №3 по дисциплине «Объектно-ориентированное программирование» Тема: Разработка интерфейса пользователя
Санкт-Петербург 2023 Цель работы: Знакомство с правилами построения экранной формы. Задача: Экранная форма предназначена для отображения списка туров, она может менять свой размер на экране. Форма должна реализовывать следующие функции: создание списка туров, загрузку списка туров из файла, сохранение списка туров в файле, добавление тура в список, переход к карточке для редактирования данных о туре, удаление тура из списка, поиск тура по отелю или города, вывод списка туров на печать. Описание проверки работоспособности приложения и экранные формы, которые отображаются при запуске контрольного примера: Инструментальная панель JToolBar размещена менеджером граничного размещения BorderLayout .NORTH. Она состоит из кнопок JButon ( “Создать новый список туров’, "Сохранить список туров", "Открыть список туров", "Добавить тур", "Редактировать", "Удалить тур" и "Печать списка туров").Выпадающий список JComboBox, текстовое поле JTextField и кнопка “Поиск” помещаются на панель класса JPanel, на которой добавляемые компоненты размещаются по центру панели. Расположение самой панели в окне пользовательского интерфейса определяет метод add с параметром BorderLayout.SOUTH, задавая тем самым размещение панели внизу окна. Таблица JTable состоит из пяти столбцов("Город","Отель","День отлета","День прилета",”Стоимость”) . Таблица находится в центре (на всем свободном месте) экранной формы. Рисунок 1 Интерфейс приложения Рисунок 2 Javadoc для класса интерфейса Рисунок 3 Javadoc поля класса интерфейса Текст программы: package main.java.touroperator; //Подключение графических библиотек import java.awt.BorderLayout; import javax.swing.*; import javax.swing.table.DefaultTableModel; import java.awt.event.*; /** * ПК для туроператора * @author Артем Мальцев * @version 1.0 */ public class Gui { /** * Список туров */ private JFrame tourList; /** * Таблица туров */ private DefaultTableModel model; /** * Кнопка "Создать новый список туров" */ private JButton createButon; /** * Кнопка "Сохранить список туров" */ private JButton saveButon; /** * Кнопка "Открыть список туров" */ private JButton openButon; /** * Кнопка "Добавить тур" */ private JButton addButon; /** * Кнопка "Редактировать тур" */ private JButton editButon; /** * Кнопка "Удалить тур" */ private JButton deleteButon; /** * Кнопка "Распечатать туры" */ private JButton printButon; /** * Панель инструментов */ private JToolBar toolBar; /** * Скролл */ private JScrollPane scroll; /** * Туры */ private JTable tours; /** * Город */ private JComboBox city; /** * Отели */ private JTextField hotels; /** * Фильтр */ private JButton filter; /** * Отображение интерфейса */ public void show() { // Создание окна tourList = new JFrame("Список туров"); tourList.setSize(500, 300); tourList.setLocation(100, 100); tourList.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Создание кнопок и прикрепление иконок createButon = new JButton(new ImageIcon("./img/new.png")); saveButon = new JButton(new ImageIcon("./img/save.png")); openButon = new JButton(new ImageIcon("./img/open.png")); addButon = new JButton(new ImageIcon("./img/add.png")); editButon = new JButton(new ImageIcon("./img/edit.png")); deleteButon = new JButton(new ImageIcon("./img/delete.png")); printButon = new JButton(new ImageIcon("./img/print.png")); // Настройка подсказок для кнопок createButon.setToolTipText("Создать новый список туров"); saveButon.setToolTipText("Сохранить список туров"); openButon.setToolTipText("Открыть список туров"); addButon.setToolTipText("Добавить тур"); editButon.setToolTipText("Редактировать тур"); deleteButon.setToolTipText("Удалить тур"); printButon.setToolTipText("Распечатать туры"); // Добавление кнопок на панель инструментов toolBar = new JToolBar("Панель инструментов"); toolBar.add(createButon); toolBar.add(saveButon); toolBar.add(openButon); toolBar.add(addButon); toolBar.add(editButon); toolBar.add(deleteButon); toolBar.add(printButon); // Размещение панели инструментов tourList.setLayout(new BorderLayout()); tourList.add(toolBar, BorderLayout.NORTH); // Создание таблицы с данными String [] columns = {"Город", "Отель", "Дата отлета", "Дата прибытия","Стоимость"}; String [][] data = {{"Стамбул", "Султан", "23.06.2023","30.06.2023","50000"}, {"Рим", "Колизей", "23.06.2023","30.06.2023","100000"}}; model= new DefaultTableModel(data, columns); tours = new JTable(model); scroll = new JScrollPane(tours); // Размещение таблицы с данными tourList.add(scroll, BorderLayout.CENTER); // Подготовка компонентов поиска city = new JComboBox(new String[]{"Город", "Стамбул", "Рим"}); hotels = new JTextField("Название отеля"); filter = new JButton("Поиск"); // Добавление компонентов на панель JPanel filterPanel = new JPanel(); filterPanel.add(city); filterPanel.add(hotels); filterPanel.add(filter); // Размещение панели поиска внизу окна tourList.add(filterPanel, BorderLayout.SOUTH); // Визуализация экранной формы tourList.setVisible(true); } /** * Создание и отображение экранной формы * * @param args строковые параметры, передаваемые программе */ public static void main(String[] args) { new Gui().show(); } } |