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

Java / Лабы / lab10

.pdf
Скачиваний:
58
Добавлен:
15.03.2015
Размер:
440.67 Кб
Скачать

Лабораторная работа 10

ГРАФИЧЕСКИЙ ИНТЕРФЕЙС

Цель лабораторной работы

Освоить работу с графическими окнами с использованием средств Java.

Задание

Написать программу, выводящую в графическое окно 3 фигуры. Цвет и тип для каждой фигуры должны быть разными. Координаты фигур могут быть произвольными в пределах размера окна.

Указания к выполнению лабораторной работы

Для работы с графическим интерфейсом в Java предназначены две библиотеки: AWT и Swing. Чтобы использовать классы этих библиотек, необходимо импортировать пакеты java.awt и javax.swing. Для этого в начале текста программы нужно написать:

import java.awt.*; import javax.swing.*;

Графическое окно реализовано в Java с помощью класса JFrame. Для того, чтобы отобразить окно на экране, необходимо создать в потоке, отвечающим за пользовательский интерфейс экземпляр класса JFrame и вызвать у него метод setVisible(true). Это можно сделать при помощи приведенного ниже кода:

EventQueue.invokeLater(new Runnable() { public void run() {

new JFrame().setVisible(true);

}

});

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

import java.awt.*; import javax.swing.*;

public class Drawing extends JFrame { public Drawing() {

super(); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//установка размеров окна setSize(300, 250);

//установка заголовка окна setTitle("Example");

}

public static void main(String[] args) { EventQueue.invokeLater(new Runnable() {

public void run() {

new Drawing().setVisible(true);

}

});

}

}

Для рисования на поверхности окна можно создать, собственный класс, являющийся наследником класса JPanel и переопределить у него метод paintComponent:

public class DrawingPanel extends JPanel { protected void paintComponent(Graphics g) {

super.paintComponent(g);

// здесь происходит рисование g.setColor(new Color(23, 124, 76)); g.fillRect(90, 40, 100, 145);

}

}

Метод paintComponent принимает экземпляр класса Graphics, позволяющий рисовать на поверхности компонента. Некоторые методы класса Graphics:

setColor – устанавливает цвет пера.

drawRect – обводит прямоугольник с заданными координатами.

fillRect – заполняет цветом прямоугольник с заданными координатами.

drawOval – обводит эллипс с заданными координатами.

fillOval - заполняет цветом эллипс с заданными координатами. После того, как класс для панели рисования написан, ее нужно добавить

на окно. Это можно сделать, написав в конструкторе класса окна Drawing следующую строчку:

add(new DrawingPanel());

Результат выполнения лабораторной работы

В результате выполнения лабораторной работы должны быть написаны следующие классы:

Класс окна, потомок JFrame.

Класс панели для графического вывода, потомок JPanel.

Соседние файлы в папке Лабы