2014-01-19 2 views
0

enter image description hereJFreeChart chartpanel Авторазмер показать все увеличенной диаграммы

Я создал jfrechart как первый рис. После того, как он увеличил его с помощью колеса мыши, он показал как второй рис. Как изменить размер ChartPanel, чтобы он отображал всю увеличенную диаграмму?

Я поместил ChartPanel в JScrollPane и обновил его предпочтительный размер в событии mouseWheelMoved следующим образом. Это не сработало, как я ожидал. Он не показывал всю диаграмму, а размер шрифта для осей также был увеличен до неподходящего размера.

 public void mouseWheelMoved(MouseWheelEvent e) { 

      double factor = _chartPanel.getZoomInFactor(); 
      Dimension dim = _chartPanel.getPreferredSize(); 
      dim.width =(int)(dim.width*(1.0+factor)+1); 
      _chartPanel.setDomainZoomable(false); 
      _chartPanel.setPreferredSize(dim);; 
      _chartPanel.revalidate(); 
      _chartPanel.setDomainZoomable(true); 

     } 
+0

Измените свой вопрос, чтобы включить [* Минимальный, полный, действительный пример *] (http://stackoverflow.com/help/mcve), который показывает ваш текущий подход. – trashgod

ответ

1

Я не уверен, как полезно смешивать масштабирование и прокрутку. При отсутствии Minimal, Complete, Valid Example,

  • Вы можете восстановить исходное состояние с помощью трансфокатора restoreAutoBounds(), как показано here.

  • Среди нескольких способов контроля размера диаграммы, упомянутый here, перекрывая getPreferredSize() кажется лучшим подходом к упомянутым причинам here.

  • Также рассмотрите расширение ChartPanel для реализации интерфейса Scrollable, как обсуждалось here.

Смежные вопросы