|
1 / 1 / 0
Регистрация: 12.03.2016
Сообщений: 19
|
||||||
Нарисовать круг с пользовательским радиусом. Как передать значение String из s1-JFrame в s2-Canvas?14.12.2018, 17:40. Показов 6959. Ответов 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 - ГГ и злое существо: как реализовать круг провокации (центр - позиция существа) с определенным радиусом? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ *
Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях.
Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её.
Последовательность действий:. . .
|
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
|
|
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение.
И на уровне агентов добавится между грибами или бактериями взаимодействий.
До того я пробовал подход через многомерные массивы,. . .
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|