|
1 / 1 / 0
Регистрация: 12.03.2016
Сообщений: 19
|
||||||
Нарисовать круг с пользовательским радиусом. Как передать значение String из s1-JFrame в s2-Canvas?14.12.2018, 17:40. Показов 6934. Ответов 21
Задача:
Нарисовать круг с пользовательским радиусом. Предполагаемый сценарий реализации: Пользователь вводит значение радиуса в JTextField input, программа должна нарисовать кружок с этим радиусом. Проблема: Не могу передать данные из String s1 (пользовательский ввод) в String s2 (в дальнейшем для преобразования в int r). Разумеется, для простоты кода отключены - слушатели (искусственно JTextField input = new JTextField("13",12); ), - исключения (считаем, что вводится только int-число) и прочее.
0
|
||||||
| 14.12.2018, 17:40 | |
|
Ответы с готовыми решениями:
21
Как нарисовать на экране круг нужным радиусом? Ввести радиус в Edit, нарисовать круг с этим радиусом
|
|
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
|
|
| 14.12.2018, 18:21 | |
|
какая-то дичь. Прочитай про области видимости, например. Прежде чем лезть в гуй разберись с основами языка
0
|
|
|
1 / 1 / 0
Регистрация: 12.03.2016
Сообщений: 19
|
|
| 14.12.2018, 18:49 [ТС] | |
|
xoraxax, допустим...
Только как это поможет? Я пытаюсь передать значение переменной из одного класса в другой. И не получается это. При чем тут видимость? С основами языка я, согласен, так и не смог разобраться. Так Помоги, Великий! А писать отписку из всякой чуши - вовсе не показатель умений, а напротив: Показатель лишь хамства, себялюбия. Как можно Разобраться, когда задаешь вопрос в попытках это сделать, а получаешь такие вот ответы. Так ответь по существу, о, Великий Могучий Умник!
0
|
|
|
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
|
|
| 14.12.2018, 19:02 | |
|
все просто, копируешь java области видимости, вставляешь в любимый поисковик и читаешь
Добавлено через 5 минут чтобы было понятнее, проблема, которую ты обозначил - на самом деле не проблема, а следствие того, что ты не понимаешь язык
0
|
|
|
1 / 1 / 0
Регистрация: 12.03.2016
Сообщений: 19
|
|
| 14.12.2018, 20:35 [ТС] | |
|
xoraxax, ну, давай так:
есть переменная извне (я задаю её в TextField, но мог бы считать из файла, БД и т.п.), задача - передать её значение в метод, который будет её использовать - в моем случае - это значение радиуса для рисования круга. Я согласен, что пытаюсь понять как это вообще можно реализовать, и пока не получается. Именно потому, что не могу найти подобного примера такого простого действия, а мною написанный код, не работает, я и обращаюсь на форум к знатокам. Так помоги с ответом, пожалуйста.
0
|
|
|
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
|
||||||
| 14.12.2018, 20:52 | ||||||
зачем делать вложенный класс, если можно его не делать, тоже не понятно. Если ты хочешь задать состояние объекта при его создании, можно написать соответствующий конструктор. Добавлено через 1 минуту еще раз, чтобы было понятнее, хрен знает, чего ты хочешь, поэтому отвечать на твои вопросы довольно сложно.
0
|
||||||
|
1 / 1 / 0
Регистрация: 12.03.2016
Сообщений: 19
|
|||||||||||
| 16.12.2018, 09:47 [ТС] | |||||||||||
|
xoraxax, ты про это: ?
public class PaintCircle extends Canvas { У меня в ином случае окно почему-то оставалось прозрачным (может, какое-то свойство как-то надо было переопределить...) В таком виде вообще не работает:
Я уже думал, что, возможно, JTextField неуместно здесь использовать, но дело всё-таки не в нём. Из JTextField я всего лишь вытаскиваю String s1, которую в дальнейшем хочу преобразовать в int radius, а уже этот radius и отдавать в fillOval(x,y,r,r);
0
|
|||||||||||
|
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
|
||||||
| 16.12.2018, 11:22 | ||||||
|
DrDany, да хотя бы так...
0
|
||||||
|
1 / 1 / 0
Регистрация: 12.03.2016
Сообщений: 19
|
|
| 16.12.2018, 11:57 [ТС] | |
|
iSmokeJC, не совсем понял.
input.getText() у меня не определяется в PaintCircle, в котором я и предполагаю сами графические элементы разместить ( gr.fillOval(x,y,r,r) .К PaintCircle pc = new PaintCircle(Integer.parseInt(input.getTe xt()); я должен в main'e добавить ещё нечто вроде: " pc.setBounds(0,0,800,600); container.add(pc); " - Так? И главное: Сам PaintCircle а передать именно ему переменную input из "JTextField input = new JTextField("13",12);", таким образом получается: PaintCircle(Integer.parseInt(input.getTe xt()); - и переменная должна задаваться именно через main, а не в теле метода, где описывается непосредственно рисования?
0
|
|
|
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
|
|
| 16.12.2018, 12:04 | |
|
я бы предложил начать с самого начала - hello world, кошечки, собачки, вот это все
0
|
|
|
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
|
||||
| 16.12.2018, 12:05 | ||||
|
1
|
||||
|
1 / 1 / 0
Регистрация: 12.03.2016
Сообщений: 19
|
|||||||||||
| 16.12.2018, 12:22 [ТС] | |||||||||||
|
iSmokeJC, ну, вот я тоже так и понимал изначально, что в мэйне 1,5-2 строчки приветствуется, а не плантации.
По сути в моём исходнике текстфилд - тоже в конструкторе лежит, только в другом. И я пытаюсь два конструктора использовать не там, где нужно - в этом моя ошибка? Если б я понял саму ошибку именно в подходе - наверняка, уже бы всё исправил. Я пользуюсь такой логикой: 1. Создаю текстфилд в окне класса
3. Преобразовываю его в int 4. Далее: класс-рисовалка
0
|
|||||||||||
|
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
|
|
| 16.12.2018, 12:29 | |
|
DrDany, если у тебя функционал расширяться не будет, можно сделать топорно, в одном классе. Прикрути туда кнопку, повесь на нее обработчик и в нем забирай значение из текстфилда и с ним вызывай метод отрисовки овала.
0
|
|
|
1 / 1 / 0
Регистрация: 12.03.2016
Сообщений: 19
|
||||||
| 16.12.2018, 12:43 [ТС] | ||||||
|
iSmokeJC, хочется сразу по-нормальному учиться, а не топорно.
ООП всё-таки тем и отличается от процедурного программирования, что каждая гайка в своем классе, методе, а не тупо в тысячах строк галимого кода. За основу своего этого кода я брал чужой пример Блокнота, в котором значение из текстфилда выводилось в текстареа - просто строками. Ну, да какая разница - s1 я преобразовал в int, только не смог в методы paint'a передать. TextArea стоял в том же классе от JFrame - и всё было понятно. Как только я ввел элементы paint, началась Задача. Потому как стало непонятно куда его приткнуть. В оригинале было так:
0
|
||||||
| 16.12.2018, 12:47 | |
|
0
|
|
|
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
|
|
| 16.12.2018, 13:15 | |
|
0
|
|
|
1 / 1 / 0
Регистрация: 12.03.2016
Сообщений: 19
|
||||||
| 16.12.2018, 13:31 [ТС] | ||||||
|
xoraxax, я снизу мэйн опустил.
Так что в чистом виде, конечно, не будет. Это - фрагмент, когда я переходил от тексареа к кружочку. Полный работающий листинг так выглядит:
я хочу сделать, чтобы оно передавалось на графический элемент (в этом коде - это квадрат, суть задачи не изменилась, я лишь попытался отсеять лишнее, чтобы лучше разобраться, заменив на круг, убрав ТехтАреа). Добавлено через 2 минуты xoraxax, по аналогии должен рисоваться круг. Т.е. вместо "приклеивания" в ТекстАреа введённой строки, она парсится в int и выводится круг input-радиуса Добавлено через 1 минуту xoraxax, что я на самом деле неправильно делаю в моем подходе к решению задачи?
0
|
||||||
|
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
|
||
| 16.12.2018, 14:13 | ||
|
https://docs.oracle.com/javase... index.html
0
|
||
|
1 / 1 / 0
Регистрация: 12.03.2016
Сообщений: 19
|
|
| 16.12.2018, 14:45 [ТС] | |
|
xoraxax, спасибо!
Почитаю ещё и это. Доки читал - и пришёл сюда именно, когда запутался. Чтобы разобраться где именно не понимаю.
0
|
|
|
296 / 149 / 67
Регистрация: 22.02.2017
Сообщений: 592
|
||||||
| 17.12.2018, 13:07 | ||||||
Сообщение было отмечено DrDany как решение
Решение
простите что мешаю обучению, но все как то похоже на попытку проломить стену за которой дремучий лес не туда.
вашу задачу можно вот так например решить.
0
|
||||||
| 17.12.2018, 13:07 | |
|
Помогаю со студенческими работами здесь
20
Нарисовать круг используя Canvas Дан круг с центром O(Xc,Yc) и радиусом R. Определить лежит точка M(x,y) в круге или снаружи. Нарисовать
Круг задается радиусом и координатами центра. Определить, найдется ли среди данных десяти кругов круг, лежащий внутри данного круга SFML - ГГ и злое существо: как реализовать круг провокации (центр - позиция существа) с определенным радиусом? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|