![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| _Y_ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1651 Регистрация: 27.11.2006 Репутация: 1 Всего: 34 |
Это я из отпуска вернулся
Задача сохранить заданную пропорцию ширина-высота у графика, рисуемого в JFreeChart. А именно: график предполагается весьма длинный, гораздо больше ширины экрана. JFreeChart сам по себе растягивается под контейнер. Хотелось бы, чтобы растягивался он только по вертикали, а по горизонтали его размер изменялся пропорционально. При этом, естественно, нужна горизонтальная полоса прокрутки. Два варианта вопроса: 1. Может есть стандартное решение? 2. Если нет стандартного, то я бы попробовал сделать так:
ЗЫ: Собственно, задача, наверное более общая и может применяться к растяжению-прокрутке любого контейнера, а не только ChartPanel. -------------------- Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:) |
|||
|
||||
| w1nd |
|
|||
![]() Вертилятор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 22.3.2006 Где: Москва Репутация: 23 Всего: 54 |
Я бы сделал свой LayoutManager, который поддерживал бы только один компонент и в зависимости от настроек масштабировал бы его. Этот layout manager устанавливается затем в панель, туда же добавляется компонент, а затем эту панель в JScrollPane.
-------------------- ![]() ![]() |
|||
|
||||
| Real McCoy |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 113 Регистрация: 28.6.2007 Репутация: 2 Всего: 2 |
w1nd,
А где можно почитать, как сделать свой LayoutManager? _Y_, По поводу работы с контейнерами ничего не скажу, т.к. такую задачу решать не пробовал, а теоретизировать опыта маловато По поводу самого JFreeChart, в смысле сохранения его пропорций могу сказать, что недавно решал подобную задачу. Решение сводилось к тому, чтобы самостоятельно посчитать, в каких границах по X и Y надо отрисовывать график, после чего полученные значения устанавливались диаграмме:
У меня, кстати, за счёт выставления границ ещё и зумирование сделано |
|||
|
||||
| _Y_ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1651 Регистрация: 27.11.2006 Репутация: 1 Всего: 34 |
w1nd, а что свой LayoutManager должен делать? Что-то ничего в голову не приходит отличного от делаемого серединой BorderLAyout.
Real McCoy, Ваше решение вроде устанавливает граничные значения осей. Меня же установленные автоматически вполне устраивают. Нужно играть не с осями, а с размерами/растяжением всего изображения. -------------------- Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:) |
|||
|
||||
| w1nd |
|
|||
![]() Вертилятор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 22.3.2006 Где: Москва Репутация: 23 Всего: 54 |
Real McCoy, не знаю, где почитать. Я когда-то читал javadoc и исходники существующих layout'ов.
_Y_, такой layout должен только возвращать/устанавливать нужный размер ChartPanel. Чуть попозже постараюсь сделать пример, но не обещаю. -------------------- ![]() ![]() |
|||
|
||||
| _Y_ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1651 Регистрация: 27.11.2006 Репутация: 1 Всего: 34 |
w1nd, спасибо. Это задача не срочная. Просто столкнулся с вопросом, на который не смог самому себе ответить.
-------------------- Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:) |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |