|
|
||||||
Не могу понять, как работать с графикой22.01.2012, 14:24. Показов 17713. Ответов 53
Метки нет (Все метки)
Есть примитивная программа. Создаётся Frame, в нём создаётся Panel, далее в методе paintComponent рисуется линия. Как теперь человеческими способами переписать программу так, чтобы то, что требуется нарисовать, рисовалось, к примеру, в функции main, потому что принятие решений о том, что рисовать, должно делаться НЕ внутри paintComponent. Как идеальный пример хотелось бы увидеть программу, которая нарисует одну линию, а через 5 секунд нарисует вторую линию
0
|
||||||
| 22.01.2012, 14:24 | |
|
Ответы с готовыми решениями:
53
Не могу понять как работать с событиями TStyleManager, не могу понять как работать с ним
|
|
_
2364 / 1243 / 78
Регистрация: 28.10.2009
Сообщений: 4,331
|
||||||
| 22.01.2012, 15:12 | ||||||
|
что-то типа того - рисуем новую линию через 3 секунды
0
|
||||||
|
|
|
| 22.01.2012, 15:28 [ТС] | |
|
1. Зачем в методе MyFrame.paint оставлено рисование линии? И почему если это место закомментировать, то при запуске программы окно не прорисовывается?
2. В моём примере (взято из книги), рисование происходит на панели. В твоём, если я правильно понимаю, прямо на фрейме. Какая между этими вещами разница? Добавлено через 5 минут Если перефразировать мой изначальный вопрос, то звучать он будет примерно так. В моём тестовом примере по сути дела рисуется СТАТИЧЕСКАЯ КАРТИНКА. А мне хотелось бы уметь это делать динамически. Например, как реализовать передвигающийся кружок (квадрат, треугольник, не суть) мне непонятно. А точнее, непонятно, как это безе черезжо..ностей сделать
0
|
|
|
_
2364 / 1243 / 78
Регистрация: 28.10.2009
Сообщений: 4,331
|
||||||
| 22.01.2012, 16:22 | ||||||
|
ну что-то типа того
1
|
||||||
|
|
|
| 22.01.2012, 17:16 [ТС] | |
|
Ну это и есть черезж...е решение. Чтобы добавить ещё один рисующийся объект, надо опять в несколько классов чего-то добавлять. Неужто нет "классических" способов без того, чтобы низкий уровень (панель для отображения) НЕ знал о том, что надо рисовать? Потому что это не его дело. Его дело - рисовать, а "наверху" должны решать, что рисовать. Т.е. нужно нарисовать круг - "наверху" нарисовали круг, без того, чтобы что-то добавлять в класс "внизу"
0
|
|
|
636 / 528 / 165
Регистрация: 01.04.2010
Сообщений: 1,843
|
||||||||||||
| 23.01.2012, 07:02 | ||||||||||||
|
В самом простом варианте, можно поступить следующим образом: 1. Создаешь свой интерфейс
4. PROFIT!
0
|
||||||||||||
|
|
||||||||
| 23.01.2012, 11:32 [ТС] | ||||||||
Добавлено через 47 секунд
0
|
||||||||
|
636 / 528 / 165
Регистрация: 01.04.2010
Сообщений: 1,843
|
|||||||||||||||||
| 23.01.2012, 13:42 | |||||||||||||||||
|
Интерфейс описан выше.
1
|
|||||||||||||||||
|
8384 / 3617 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
|
||||||
| 23.01.2012, 14:29 | ||||||
|
Evg, посмотрите программку из этого поста Движение фигуры
и вот еще небольшой пример рисования
0
|
||||||
|
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
|
|
| 23.01.2012, 14:59 | |
|
0
|
|
|
|
|||
| 23.01.2012, 17:02 [ТС] | |||
|
Добавлено через 1 минуту При этом, насколько я понимаю, в языке нет понятия типа "указатель на метод", чтобы хотя бы через hook рисовать
0
|
|||
|
|
||
| 24.01.2012, 01:18 [ТС] | ||
|
0
|
||
|
8384 / 3617 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
|
||
| 24.01.2012, 02:33 | ||
|
В C# применяется такой же подход.
0
|
||
|
636 / 528 / 165
Регистрация: 01.04.2010
Сообщений: 1,843
|
||
| 24.01.2012, 08:18 | ||
|
Evg,
если тебе так не нравятся общепринятые в языке практики, то зачем вообще использовать этот язык?
0
|
||
|
|
||||
| 24.01.2012, 14:02 [ТС] | ||||
|
0
|
||||
|
8384 / 3617 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
|
||||||||
| 24.01.2012, 15:11 | ||||||||
1
|
||||||||
|
|
|||||||
| 24.01.2012, 15:13 | |||||||
|
ну вот я накидал как вы просили, только по клику
2
|
|||||||
|
|
|||||||||||
| 24.01.2012, 15:45 [ТС] | |||||||||||
|
У меня под линуксом оба теста не запускаются (а точнее, там ничего не рисуется). Наверное java какой-нибудь устаревшей версии (что само по себе интересно, потому что никаких сообщений об этом я не видел).
Но у обеих программ я вижу один и тот же дефект. Решая конкретную задачу оба втора всё свалили в одну большую кучу. Собственно, я насчёт этого пока ничего не просил, так что возьмём это за рабочую версию. А теперь попробуйте растащить код программы на два класса. Первый класс - рассчётный. Т.е. он занимается исключительно обработкой данных и вычислением координат линий, требуемых к прорисовке. Второй класс - класс окна, который представляет собой холст для рисования и не более того. Первый класс посчитал данные и попросил второй класс нарисовать. И для наглядности лучше эти два класса растащить в разные файлы Т.е. что-то типа того
0
|
|||||||||||
|
|
|||
| 24.01.2012, 16:05 | |||
|
0
|
|||
| 24.01.2012, 16:05 | |
|
Помогаю со студенческими работами здесь
20
длинная арифметика, не могу понять как с ней работать Не могу понять как в Visual Studio (C#) работать с "ресурсами" Перестал работать код. Не могу понять в чём причина! Програма не хочет работать. не могу понять что не так ( Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
|
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
|
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2.
Данный документ берёт данные из другого нетипового документа. . .
|
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
|
|
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать программный контроль на предмет проведения документа. . .
|
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача:
1. Реализовать контроль заполнения реквизита. . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: при создании документов установить период списания автоматически. . .
|