Форум программистов, компьютерный форум, киберфорум
Java: GUI, Графика
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 27.12.2020
Сообщений: 3
1

Вывод окна после цикла

27.12.2020, 13:29. Просмотров 2090. Ответов 1

Имеется данная программа, которая считает координаты по заданным расчётам, затем необходимо вывести в окне окружности по полученным координатам x и y. Как сделать так, чтобы выводилось одно после цикла, используя этот же метод? Либо как создать публичный класс Board, чтобы сослаться на него после цикла for? на данный момент выводится множество окон, в каждом из которых рисуется одна окружность по ходу цикла.


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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
package com.Project;
 
import javax.swing.*;
import java.awt.*;
import java.util.Scanner;
 
public class Main {
 
    public static void main(String[] args) {
 
        System.out.println("Прорамма для расчёта координат точек дуги");
        Scanner num = new Scanner(System.in);
        while (true) {
            String decision;
 
            label:
            {
                System.out.print("Введите количество точек n=");
 
                float n = num.nextInt();
                System.out.print("Введите значение половины хорды дуги l=");
                double l = num.nextDouble();
                System.out.print("Введите значение высоты сегмента круга h=");
                double h = num.nextDouble();
                if (h <= l) {
 
                    double R = (l * l + h * h) / (2 * h);
                    System.out.println("R=" + String.format("%8.2f", R));
                    double k = Math.sqrt(l * l + h * h);
                    double a = (240 * h * (4 * k - l)) / (Math.PI * (l * l + h * h));
                    System.out.println("a=" + String.format("%8.2f", a));
                    double a1 = 90 - (a / 2);
                    double asekt = (a / 2) / ((n - 1) / 2);
                    double x0 = h - R;
                    double y0 = 0;
                    double x = x0 + (R * (Math.sin((a1 * Math.PI) / 180)));
                    double y = y0 + (R * (Math.cos((a1 * Math.PI) / 180)));
 
                    double asled;
                    int N;
 
                    for (N = 0; N < n; N++) {
                        asled = a1 + asekt * N;
                        x = x0 + (R * (Math.sin((asled * Math.PI) / 180)));
                        y = y0 + (R * (Math.cos((asled * Math.PI) / 180)));
                        System.out.println("Для точки " + (N + 1) + "    α=" + String.format("%8.2f", asled) + "   x=" + String.format("%8.2f", x) + "   y=" + String.format("%8.2f", y));
 
 
                        double x1 = x*100;
                        double y1 = y*100;
 
                        class Board extends JPanel {
 
                            public void paintComponent(Graphics g) {
 
 
                                super.paintComponent(g);
                                paint(g);
 
                            }
 
                            public void paint(Graphics g) {
                                g.translate(getWidth() / 2, getHeight() / 2);
                                int d = (int) x1 ;
                                int f = (int) y1;
                                g.drawOval(d, f, 8, 8);
 
                            }
 
                    }
 
                        JFrame jf = new JFrame("Window");
                        jf.setSize(800, 600);
                        jf.setVisible(true);
                        jf.add(new Board());
 
                        }
 
                    System.out.print("Провести расчёт ещё раз y/n? ");
                    while (true) {
                        decision = num.nextLine();
                        switch (decision) {
                            case "y":
                                break label;
 
                            case "n":
                                System.exit(0);
                        }
                    }
 
                } else ;
                System.out.println("Введены некорректные данные. Введите значения заново:");
                break label;
            }
 
        }
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.12.2020, 13:29
Ответы с готовыми решениями:

Вывод на экран значения переменной j после окончания цикла
using System; class Cicly2 { static void Main() { for (int i = 0; i &lt; 10; i++) { ...

Предусмотреть подсчет общего количества перестановок и вывод промежуточного массива после каждого цикла сортировки
Нужно предусмотреть подсчет общего количества перестановок и вывод промежуточного массива после...

Опросник с помощью цикла, сколько было женщин и мужчин в итоге после выхода из цикла
доброе утро! очень нужна помощь 2) сделать опросник с помощью цикла, сколько было женщин и...

вывод на экран чисел 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12, с использованием одного цикла и что бы все printf были только в теле цикла
вывод на экран чисел 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12, с использованием одного...

1
0 / 0 / 0
Регистрация: 27.12.2020
Сообщений: 3
30.12.2020, 22:18  [ТС] 2
Неужели никто не подскажет? Нужно одно окно, в котором и будет рисунок, помогите избавиться от множества окошек. Перепробовал много чего. В Яве совсем новичок. Очень буду благодарен за помощь
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.12.2020, 22:18

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Нахождение отрицательного цикла в графе и вывод цикла
Вот программа по нахождению отрицательного цикла в графе и вывод цикла void Floyd(int GR, int...

Нахождение отрицательного цикла в графе и вывод цикла
Вот программа по нахождению отрицательного цикла в графе и вывод цикла void Floyd(int GR, int...

Вывод результата в теле цикла и за пределами цикла???
Вывод результата в теле цикла и за его пределами: 1. как это влияет на результат? 2. где про это...

Цикл For. Вывод цикла внутри цикла
Всем привет, есть проблемка. Код рабочий но при вводе среднего бала допустим выше несуществующего...

Как осуществить вывод таблицы в DataGrid и обновление таблицы в БД после закрытия окна программы
Имеется БД в MS Sql с одной таблицей. Как осуществить вывод таблицы в DataGrid(или другой...

Вывод окна ввода снова после не правильно ввода
Доброй ночи :) Программу почти доделал, осталась мелочь с которой и уже бьюсь не один час, решил...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.