Лаб_12 Головков И.Е. 12002108 ООП
.docxФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ БЕЛОГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ (НИУ «БелГУ») ИНСТИТУТ ИНЖЕРЕНЕРНЫХ И ЦИФРОВЫХ ТЕХНОЛОГИЙ
КАФЕДРА ИНФОРМАЦИОННЫХ И РОБОТОТЕХНИЧЕСКИХ СИСТЕМ
Отчет по лабораторной работе №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); } } }
Результат работы программы: