| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: GUI и Java FX приложения > Сохранение пропорции JFreeChart? |
| Автор: _Y_ 11.8.2007, 19:43 |
| Это я из отпуска вернулся Задача сохранить заданную пропорцию ширина-высота у графика, рисуемого в JFreeChart. А именно: график предполагается весьма длинный, гораздо больше ширины экрана. JFreeChart сам по себе растягивается под контейнер. Хотелось бы, чтобы растягивался он только по вертикали, а по горизонтали его размер изменялся пропорционально. При этом, естественно, нужна горизонтальная полоса прокрутки. Два варианта вопроса: 1. Может есть стандартное решение? 2. Если нет стандартного, то я бы попробовал сделать так:
ЗЫ: Собственно, задача, наверное более общая и может применяться к растяжению-прокрутке любого контейнера, а не только ChartPanel. |
| Автор: w1nd 11.8.2007, 22:34 |
| Я бы сделал свой LayoutManager, который поддерживал бы только один компонент и в зависимости от настроек масштабировал бы его. Этот layout manager устанавливается затем в панель, туда же добавляется компонент, а затем эту панель в JScrollPane. |
| Автор: Real McCoy 12.8.2007, 13:30 | ||
| w1nd, А где можно почитать, как сделать свой LayoutManager? _Y_, По поводу работы с контейнерами ничего не скажу, т.к. такую задачу решать не пробовал, а теоретизировать опыта маловато По поводу самого JFreeChart, в смысле сохранения его пропорций могу сказать, что недавно решал подобную задачу. Решение сводилось к тому, чтобы самостоятельно посчитать, в каких границах по X и Y надо отрисовывать график, после чего полученные значения устанавливались диаграмме:
У меня, кстати, за счёт выставления границ ещё и зумирование сделано |
| Автор: _Y_ 12.8.2007, 17:48 |
| w1nd, а что свой LayoutManager должен делать? Что-то ничего в голову не приходит отличного от делаемого серединой BorderLAyout. Real McCoy, Ваше решение вроде устанавливает граничные значения осей. Меня же установленные автоматически вполне устраивают. Нужно играть не с осями, а с размерами/растяжением всего изображения. |
| Автор: w1nd 12.8.2007, 18:13 |
| Real McCoy, не знаю, где почитать. Я когда-то читал javadoc и исходники существующих layout'ов. _Y_, такой layout должен только возвращать/устанавливать нужный размер ChartPanel. Чуть попозже постараюсь сделать пример, но не обещаю. |
| Автор: _Y_ 12.8.2007, 21:50 |
| w1nd, спасибо. Это задача не срочная. Просто столкнулся с вопросом, на который не смог самому себе ответить. |