Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Java: Апплеты > кто-нибудь работал с либой jFreeChart ? |
Автор: alex_smirnov 27.6.2007, 11:14 | ||
Если кто-то занимался этими делами, давайте подискутируем... Для начала, как просто нарисовать Rectangle на созданном графике? Мой код следующий, они нифига не работает....
|
Автор: powerOn 28.6.2007, 13:30 |
приведи код полностью, что бы можно было запустить и посмотреть что не так. |
Автор: alex_smirnov 28.6.2007, 14:15 | ||||
Не то, что мне жалко код))) Он уже под 1000 строк, выкладываю функцию загрузки графика, может на первый взгляд поймёшь, что не так...:
Добавлено через 8 минут и 22 секунды Нашёл решение, но оно какое-то не такое))) Получилось просто рисовать 2d компоненты поверх всего апплета, раньше был конфликт с чартом. Вот, что работает:
Надеюсь, что с перерисовкой проблем не возникнет. Идея - то в следующем: создать апплет, на котором мышой можно выбирать диапазон на графике, после выбора диапазона данные перегружаются и график перерисовывается. Всё уже сделано, сижу, бьюсь как раз над отрисовкой шлейфа за мышой, допустим линии... Может есть какие-нить средства в jFreeChart'е которые сделают отрисовку проще? Маркеры различные пробовал, но это жутко неудобно. |
Автор: alex_smirnov 28.6.2007, 16:10 | ||
Хе, с перерисовкой по маус драгу проблем не возникло, зато возникло ощущение, что обьект не успевает за мышой при быстром её перемещении... может кто подскажет в чём может заключаться проблема?
в paint() методе вызывается функция перерисовки с глобальными параметрами (координаты объекта). Может можно это делать без такой заторможенности? Вопрос об альтернативных вариантах (используя саму JFreeChart) всё ещё открыт ![]() |
Автор: alex_smirnov 29.6.2007, 16:55 |
Сделал без тормозов: 1. рисовальную функцию прописал в методе маус листнера. 2. Отказался от метода repaint(); в этом самом методе (естесственно). 3. Скорость возросла. ![]() 4. Потом организовал страние по предыдущим координатам... и т.д.))) Вдохновило чтение исходников JFreeChart'a... Не зря меня учил мой первый учитель Java: "Читайте доки, доки рулеззз", в данном случае рулезом оказались сорцы))) Ура! Вопрос вобщем решён, видимо наилучшим способом) |
Автор: Real McCoy 4.7.2007, 18:12 | ||
Скажи, плз, а у Тебя нет проблем с автозумом чарта, когда по нему делается маус драг? У меня он всё портит, т.к. перед драгом один масштаб, после него - другой, и отрисовка получается не там и не такого размера, как надо. У меня класс-контейнер, наследует ChartPanel, в конструкторе установлены setDomainZoomable(false); и setRangeZoomable(false); Создаю JFreeChart и устанавливаю его в контейнер; к контейнеру привязываю addMouseListener и addMouseMotionListener; рисую примерно так, как Ты в начале написал. Рисовать, рисует, но и зумится тоже. Как Ты избегаешь зума? |
Автор: alex_smirnov 4.7.2007, 18:51 | ||
Сорри, не заглядывал в тему, не слежу за ней уже ))) У меня как-то проблема не возникала(зум как-то я сразу отключил), но решение следующее:
попробуй, не получится, дай знать ) удачи! |
Автор: Real McCoy 4.7.2007, 19:54 |
Спасибо! Я уже и сам до этого успел додуматься ![]() Всё равно, спасибо! |