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

Нарисовать круг с пользовательским радиусом. Как передать значение String из s1-JFrame в s2-Canvas?

14.12.2018, 17:40. Показов 6997. Ответов 21

Студворк — интернет-сервис помощи студентам
Задача:
Нарисовать круг с пользовательским радиусом.

Предполагаемый сценарий реализации:
Пользователь вводит значение радиуса в JTextField input,
программа должна нарисовать кружок с этим радиусом.

Проблема:
Не могу передать данные из String s1 (пользовательский ввод) в String s2 (в дальнейшем для преобразования в int r).
Разумеется, для простоты кода отключены
- слушатели (искусственно JTextField input = new JTextField("13",12); ),
- исключения (считаем, что вводится только int-число) и прочее.

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
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
 
public class UserCircleJTextField extends JFrame {
    UserCircleJTextField(String s){
        super(s);
        String s1, s2;
 
        JPanel container = new JPanel();
        container.setLayout(null);
        
        JTextField input = new JTextField("13",12);
        input.setBounds(20,30,40,25);
        container.add(input);
        
        PaintCircle pc = new PaintCircle();
        pc.setBounds(0,0,800,600);
        container.add(pc);
        
        setVisible(true);
        setLocation(300,200);
        setSize(800,600);
        setContentPane(container);
        
        s1 = input.getText();
        
        System.out.println("В UserCircleJTextField-class s1=***"+s1+"***");
 
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
     
     // =================== Как передать значение из s1 в s2, т.е. s2=s1 ??? ===================
            //String s2 = s1; 
    String paintCircle(String st1){
         System.out.println("В paintCircle-function st1=***"+st1+"***");
        return st1;
    }
    
    public class PaintCircle extends Canvas {
         String s2 = paintCircle("21"); // - ok!
         //String s2 = input.getText();
         //String s2 = s1;
        //  String s2 = UserCircleJTextField.UserCircleJTextField(s1);
 
        public void paint(Graphics gr) {
               int x,y,r;
               x = 100;
               y = 100;
               r = Integer.parseInt(s2);
                     gr.setColor(Color.BLUE);
                     gr.fillOval(x,y,r,r);
                     gr.drawString("R="+s2, x+r, y+r);
                     System.out.println("В paint Graphics gr s2=***"+s2+"***");
        }
 
    }
    
// ========== main =============
    public static void main(String[] args) {
        JFrame urerWindow = new UserCircleJTextField("Окно для ввода-вывода input=JTextField и PaintCircle(x,y,R=input)");
        urerWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 
        }
}
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.12.2018, 17:40
Ответы с готовыми решениями:

Как нарисовать на экране круг нужным радиусом?
Как нарисовать на экране круг нужным радиусом? Напр., user вводит в Edit1 число 15 и рисуется круг с R=15см. User берет линейку и измеряет...

Ввести радиус в Edit, нарисовать круг с этим радиусом
при вводе в Edit радиуса, рисуется круг с этим радиусом

Нарисовать круг с определённым диаметром (радиусом), чтобы он касался точки
Доброго времени суток! Помогите пожалуйста со следующей задачей. В общем у меня есть точка допустим A с координатами (x, y) Мне нужно...

21
1 / 1 / 0
Регистрация: 12.03.2016
Сообщений: 19
17.12.2018, 13:59  [ТС]
Студворк — интернет-сервис помощи студентам
Nidl, Спасибо!
В среде пока что запустить не могу (с другого компа сейчас), но в целом читаю код - всё довольно изящно и понятно на первый взгляд.
Будет что поизучать по-настоящему. С Настоящим решением!
Еще раз Спасибо!!!
0
1 / 1 / 0
Регистрация: 12.03.2016
Сообщений: 19
18.12.2018, 09:40  [ТС]
Nidl, Спасибо!
По истине то, что нужно!
Без комментариев всё-всё понятно. Довольно красиво код ваш написан.
Подробно, без излишеств - и есть чему действительно учиться.
Некоторые вещи представлены совершенно по-другому, тем не менее, читать оказалось довольно легко и понятно.
Спасибо! По-настоящему полезную вещь вы показали, это следует ставить в пример новичкам.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.12.2018, 09:40
Помогаю со студенческими работами здесь

Нарисовать круг используя Canvas
Здравствуйте. Совсем недавно начал изучать Java ME, такой вопрос, неужели все так сложно с Canvas? Разве обязательно, чтобы нарисовать...

Дан круг с центром O(Xc,Yc) и радиусом R. Определить лежит точка M(x,y) в круге или снаружи. Нарисовать
Дан круг с центром O(Xc,Yc) и радиусом R. Определить лежит точка M(x,y) в круге или снаружи. Нарисовать

На картинке нарисовать круг с центром в точке (100,100) с радиусом 80 пикселей и заполнить его равномерным шумом
Необходимо в картинке с помощью матлаба нарисовать круг с центром в точке (100,100) с радиусом 80 пикселей и заполнить его равномерным...

Круг задается радиусом и координатами центра. Определить, найдется ли среди данных десяти кругов круг, лежащий внутри данного круга
Народ, помогите кто может. Не могу никак написать эту программу. Буду очень благодарен.

SFML - ГГ и злое существо: как реализовать круг провокации (центр - позиция существа) с определенным радиусом?
Доброго времени суток! Имеются спрайты ГГ и некого "агрессивного" существа. При входе в невидимый круг провокации (центр - позиция...


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

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru