1 | ||||||
Не могу понять, как работать с графикой22.01.2012, 14:24. Показов 16798. Ответов 53
Метки нет (Все метки)
Есть примитивная программа. Создаётся Frame, в нём создаётся Panel, далее в методе paintComponent рисуется линия. Как теперь человеческими способами переписать программу так, чтобы то, что требуется нарисовать, рисовалось, к примеру, в функции main, потому что принятие решений о том, что рисовать, должно делаться НЕ внутри paintComponent. Как идеальный пример хотелось бы увидеть программу, которая нарисует одну линию, а через 5 секунд нарисует вторую линию
0
|
22.01.2012, 14:24 | |
Ответы с готовыми решениями:
53
Не могу понять как работать с событиями TStyleManager, не могу понять как работать с ним Не могу понять, как должна работать модель Не могу понять как работать с данным массивом |
28.01.2012, 12:48 [ТС] | 41 | |||||
И как в итоге твоим JCanvas пользоваться?
Добавлено через 4 минуты Да мне не нужны рассуждения. Мне нужен (о чём я уже неоднократно говорил), готовый работающий пример. Потому что имея его на руках дальше уже можно нормально экспериментировать
0
|
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
|
|
30.01.2012, 14:57 | 42 |
Совершенно логично. По умолчанию у панели стоит FlowLayout с выравниванием по центру. Размеры компоненте не задаются, предпочтительные в том числе (200х200 - это исключительно размер буфера), их выбирает контейнер. В итоге он помещает канву сверху по центру.
Как пользоваться... Например, можно установить у панели BorderLayout и поместить канву по центру. Тогда она будет растягиваться по необходимости. Можно и по-другому. Но это - рассуждения. А они Вам не нужны, как Вы сами говорите.
0
|
01.02.2012, 12:53 [ТС] | 43 | |||||
Если я правильно тебя понял. Но оно не работает
0
|
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
|
|
01.02.2012, 13:30 | 44 |
1
|
01.02.2012, 14:11 [ТС] | 45 | |||||
Всё равно не работает
0
|
636 / 528 / 165
Регистрация: 01.04.2010
Сообщений: 1,843
|
|
02.02.2012, 12:13 | 46 |
Все работает. Линия рисуется белым цветом, возможно, ты её не видишь. Перед рисованием линии установи какой-нибудь яркий цвет, например, красный.
1
|
02.02.2012, 18:05 [ТС] | 49 | |||||
Едем дальше. Рисую две линии с интервалом времени между ними. Вторая линия не рисуется. Если закомментировать блок кода по исполнению sleep'а, то нарисуется нормально. Что теперь не правильно?
Файл JCanvas.java берём тут: https://www.cyberforum.ru/java... ost2429283
0
|
636 / 528 / 165
Регистрация: 01.04.2010
Сообщений: 1,843
|
|
02.02.2012, 19:48 | 50 |
Блокирование потока.
Перечитай статьи skipy про устройство и синхронизацию gui. Ссылки он приводил.
0
|
02.02.2012, 20:12 [ТС] | 51 |
sleep я воткнул для нагляжности и стабильной повторяемости. Можно просто 100 линий в цикле рисовать. И при каждом запуске будет разное количество линий, просто на глаз это более сложно определить. Да читал я статью, сколько смог. А потом затырился (о чём уже писал). Мне, как не имеющему опыт программирования на java, сложно уловить сентенцию. Я просто надеялся, что можно как-то сделать по простому: взять чужой класс (да хоть 10 классов), вставить в программу и просто рисовать, не заморачиваясь с тем, как оно устроено внутри (как это делается, к примеру, в VCL).
Типо как сажают ребёнка на детский двухколёсный велосипед с двумя дополнительными колёсиками. Он учится рулить, крутить педали, нажимать на тормоза, не заморачиваясь при этом с такой сложной вещью, как баллансировка. А потом, когда он освоил механику, уже снимают колёса (теперь он готов к сложным вещам). Вот и я создал тему по одной простой причине. Как человек с опытом работы на других языках, я понимаю, что отрисовка через componentPaint - это самое что ни на есть прямое черезж..ие с точки зрения проектирования программы. Думал увидеть конкретный работающий пример без этого черезж...ия. Чтобы на ранних этапах не лезть в дебри того, как устроены эти наносистемы.
0
|
636 / 528 / 165
Регистрация: 01.04.2010
Сообщений: 1,843
|
|
03.02.2012, 07:18 | 52 |
Тогда может быть сначала привыкнуть к философии java на консольных приложениях, или, на крайний случай, поработать с GUI без самостоятельного рисования, используя только то, что уже есть, а уже потом переходить к GUI? Потому как GUI, а уж тем более его ручная отрисовка, совсем не тянет на двухколёсный велосипед с двумя дополнительными колёсиками.
0
|
03.02.2012, 11:17 [ТС] | 53 |
Вообще я рисую не GUI и всего лишь динамическую картинку. Но если java устроена так, что для такой элементарной вещи надо много курить мануалы, то это как-то печально... На консольных приложениях смысла привыкать особенно не к чему: ну какой смысл по сто раз писать сортировку массива или нахождения максимума, если этот алгоритм от языка никак не зависит.
Например, разбирательства с борландом проводил таким образом, что поставил для себя цель в написании полезного (для себя) большого приложения и корячился с ним (порядка года). При этом упор делал не на то, чтобы хоть что-то и хоть как-то получилось, а на том, чтобы программа с технической точки зрения была грамотно написана, а с пользовательской - была удобна в использовании. В дополнение ко всему это была ещё и моя первая программа на Си++. По прошествии этого времени я ещё более утвердился во мнении, что такой подход намного более правильный, чем "попробуй для начала что-то простенькое". При этом с борландом почти всегда на конкретный вопрос я получал либо конкретный ответ, либо конкретный пример (благо в инете их навалом). В случае с java на такой конкретный вопрос я так и не получил конкретного ответа (а точнее, чёрного ящика). Как и ожидалось, для начала я получил несколько ответов, которые НЕ соответствовали моему вопросу (и так же нарыл кучу примеров в инете, построенных по такому же принципу). В конце-концов добрый человек сделал код JCanvas, который вроде бы как "бери и работай", но как оказалось "но при этом кури мануалы". Я для себя пока не вижу интересной цели в виде консольного приложения, вот придумал только графическое. Собственно, только после того, как придумал себе более-менее серьёзную постановку задачи, я и сел за язык. Тогда прошу ответить хотя бы на такой вопрос. Java и его (её) философия устроены таким образом, что реализовать чёрный ящик, отвечающий моим запросам настолько сложно, что людям попросту неохота тратить своё время на человека, ищущего этот чёрный ящик на халяву? Что borland, что java - это всего лишь расширение кругозора в свободное от работы время. На какие-то профессиональные навыки я не претендую (потому что на это уходит всего лишь небольшое количество свободного времени). Просто из тех соображений, что знания лишними не бывают и могут пригодиться. java в данном случае мне интересна как технология, при помощи которой можно написать переносимое графическое приложение
0
|
636 / 528 / 165
Регистрация: 01.04.2010
Сообщений: 1,843
|
|
05.02.2012, 10:26 | 54 |
А как без мануалов? С тем, что от него требуется упомянутый класс справляется отлично. Проблемы возникли из-за непонимания принципа layout-ов. С коими можно ознакомиться опять же на сайте .
0
|
05.02.2012, 10:26 | |
05.02.2012, 10:26 | |
Помогаю со студенческими работами здесь
54
длинная арифметика, не могу понять как с ней работать Не могу понять как в Visual Studio (C#) работать с "ресурсами" Перестал работать код. Не могу понять в чём причина! Програма не хочет работать. не могу понять что не так ( Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |