Форум программистов, компьютерный форум, киберфорум
Java: GUI, графика
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 17
1

Вывести 4 прямоугольника в окне

07.03.2018, 01:28. Показов 1004. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте!

Написал программу на Java. По заданию должна 4 прямоугольника в окне. Но почему-то даже окно не выводится.

Класс Rect
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import java.lang.Math; 
 
class Rect{ 
int x1, y1, x2, y2; 
Rect(int x1, int y1, int x2, int y2){ 
this.x1 = x1; 
this.x2 = x2; 
this.y1 = y1; 
this.y2 = y2; 
 
} 
Rect union(Rect p){ 
Rect rr = new Rect(); 
rr.x1 = x1 < p.x1 ? x1 : p.x1; 
rr.y1 = y1 > p.y1 ? y1 : p.y1; 
rr.x2 = x2 > p.x2 ? x2 : p.x2; 
rr.y2 = y2 < p.y2 ? y2 : p.y2; 
 
return rr; 
} 
Rect intersection(Rect p){ 
Rect rr = new Rect(); 
rr.x1 = Math.max(p.x1,x1); 
rr.y1 = Math.min(p.y1,y1); 
rr.x2 = Math.min(p.x2,x2); 
rr.y2 = Math.max(p.y2,y2); 
 
return rr; 
} 
Rect(){} 
 
public String toString(){ 
return"[("+x1+","+y1+"),("+x2+","+y2+")]"; 
} }
Класс RectFrame
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
import java.awt.*; 
import java.awt.event.WindowAdapter; 
import java.awt.event.WindowEvent; 
class RectFrame extends Frame{ 
 
 
RectFrame(Rect []r){ 
 
rr = r; 
setSize(400, 300); 
setVisible(true); 
addWindowListener(new WindowAdapter(){ 
public void windowClosing(WindowEvent l){ 
System.exit(0);}}); 
} 
 
public static void main(String args[]){ 
 
Rect r1 = new Rect(10, 20, 40, 70); 
Rect r2 = new Rect(30, 50, 20, 80); 
Rect r3 = r1.union(r2); 
Rect r4 = r1.intersection(r2); 
Rect r[] = {r3, r1, r2, r4}; 
new RectFrame(); 
} 
 
RectFrame(){} 
Rect rr[]; 
 
 
 
 
 
public void paint(Graphics g){ 
g.drawLine(5, 150, 370, 150); 
g.drawLine(200, 10, 200, 380); 
Color c[] = {Color.red, Color.green, Color.yellow, Color.blue}; 
 
for (int i = 0; i < 4; i++){ 
rr[i].x1 += 200; 
rr[i].x2 += 200; 
rr[i].y1 = 150 - rr[i].y1; 
rr[i].y2 = 150 - rr[i].y2; 
 
g.setColor(c[i]); 
g.fillRect(rr[i].x1, rr[i].y1, rr[i].x2 -rr[i].x1,(int)Math.abs(rr[i].y1 - rr[i].y2)); 
//g.fillRect(rr[i].x1,rr[i].y1,(int) Math.abs(rr[i].x2-rr[i].x1),(int) Math.abs(rr[i].y1-rr[i].y2)); 
} 
} 
 
 
}
Подскажите, пожалуйста, в чем может быть проблема

Заранее всем благодарен!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.03.2018, 01:28
Ответы с готовыми решениями:

Ввести площадь и периметр прямоугольника. Вывести длины сторон этого прямоугольника
Помогите написать программу... Пользователь водит прямоугольника площадь и периметр. Надо...

Три прямоугольника в окне С++
Помогите решить задачу: нужно нарисовать 3 прямоугольника мышкой в окне так, чтобы они рисовались...

Вывести строку из букв. Гласные буквы вывести в одном окне по диагонали окна, согласные в - другом окне по другой диагонали
Ввести строку из букв. Гласные буквы вывести в одном окне по диагонали окна, согласные - в другом...

Рисование прямоугольника в графическом окне по двум кликам мыши
Задача такова: при нажатии правой клавиши миши первый раз должны записатся её координаты на экране,...

2
Фрилансер
3709 / 2082 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
07.03.2018, 04:09 2
В строке 24 нужно передать в конструктор RectFrame параметр r.
Иначе срабатывает пустой конструктор RectFrame, который определён строке 29.
1
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 17
14.03.2018, 00:21  [ТС] 3
Спасибо!)
0
14.03.2018, 00:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.03.2018, 00:21
Помогаю со студенческими работами здесь

Как сделать так, когда я ввожу информацию в окне 2, то она появлялась в главном окне тобишь в окне 1?
В общем нужно создать просто приложение по типу инсталятора с кнопками далее или назад. И я ввожу...

Все четные числа вывести в одном окне, в строчку; все нечетные числа - во втором окне
Ввести массив из 10 чисел. Все четные числа вывести в одном окне, в строчку; все нечетные числа -...

Вывести на экран контур прямоугольника
Даны высота и ширина прямоугольника. Вывести на экран контур прямоугольника: ****** * * * ...

Вывести на экран монитора изображение прямоугольника
Вывести на экран монитора прямоугольник красного (red) цвета таким образом чтобы он плавно...

Вывести номер прямоугольника с минимальным периметром
Как вывести номер максимальной площади прямоугольника сделал, а как вывести номер прямоугольника с...

Как вывести слова которые длиннее 6 символов и вывести их вместе (в одном окне). Нужно использовать "Join"
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru