Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лаб_12 Головков И.Е. 12002108 ООП

.docx
Скачиваний:
0
Добавлен:
26.06.2024
Размер:
271.3 Кб
Скачать

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ БЕЛОГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ (НИУ «БелГУ») ИНСТИТУТ ИНЖЕРЕНЕРНЫХ И ЦИФРОВЫХ ТЕХНОЛОГИЙ

КАФЕДРА ИНФОРМАЦИОННЫХ И РОБОТОТЕХНИЧЕСКИХ СИСТЕМ

Отчет по лабораторной работе №12

Вариант №5 Тема работы «Разработка визуальных интерфейсов» по дисциплине «Объектно-ориентированное программирование»

студента очного отделения

2 курса группы 12002108

Головкова Игоря Евгеньевича

Проверил:

Резников Н. Г.

Белгород 2022

Цель работы: приобрести практический опыт разработки настольных Java-приложений с графическим интерфейсом.

Общая постановка задачи

1. Изучить методику построения приложений с использованием

графического интерфейса библиотек java.awt и javax.swing.

2. Разработать алгоритм и составить программу для решения задачи

соответствующего варианта.

3. Набрать программу и отладить её работу в среде NetBeans IDE.

4. Подобрать тестовые данные. Протестировать.

5. Оформить отчет по лабораторной работе, включающий:

a. титульный лист;

b. цель работы;

c. постановку задачи для Вашего варианта;

d. текст программы на языке Java;

e. скриншоты результатов выполнения тестовых примеров;

f. ответы на контрольные вопросы.

Вариант задания: 5. Изобразить в окне приложения отрезок, вращающийся в плоскости фрейма вокруг точки, движущейся по отрезку.

Листинг программы:

import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.awt.geom.*; public class LabR12 { public static void main(String[] args) { Lab12 lab = new Lab12(); lab.setVisible(true); } } class Lab12 extends JFrame { public Lab12(){ super("Вращение отрезка вокруг точки"); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setBounds(0, 0, 425, 400); ActionListener listener = new MyActionListener(); Timer tm = new Timer(1, listener); tm.start(); this.add(pan); } JPanel pan = new JPanel(); class MyActionListener implements ActionListener { int i = 0; @Override public void actionPerformed(ActionEvent arg0) { Graphics2D gr = (Graphics2D) pan.getRootPane().getGraphics(); pan.update(gr); Point2D center = new Point2D.Double(200, 150); Ellipse2D ell = new Ellipse2D.Double(center.getX()-2.5, center.getY()-2.5, 5, 5); Line2D lini = new Line2D.Double(center.getX()-30, center.getY(), center.getX()+30, center.getY()); gr.draw(lini); gr.translate(Math.cos(i++* 0.03)*30, 0); // движение вдоль линии по Х gr.draw(ell); gr.rotate(i++* 0.03, center.getX(), center.getY()); // вращение Line2D lini2 = new Line2D.Double(center.getX()-30, center.getY()+100, center.getX()+30, center.getY()+100); gr.draw(lini2); } } }

Результат работы программы: