我是JavaSwing和JFreeChart的初学者。 我已经完成了一个XYLineChart,我在这个图表中添加了一个滚动条。我为我的XYLineChart做了一个SlidingXYDataset类,就像SlidingCategoryDataset一样。然后我的滚动条工作。这是代码:
JScrollBar scroller = new JScrollBar(JScrollBar.HORIZONTAL, 0, 10, 0, 20);
@Override
public void stateChanged(ChangeEvent e) {
int value = scroller.getValue();
dataset.setFirstItemIndex(value);
}
现在,我不知道在使用缩放时如何调整此滚动条。对于我的缩放,我有一个带有ActionListener的按钮。当我按下按钮时,它会触发此代码(在我的面板的构造函数中,setMouseZoomable为false):
public class ZoomListener extends MouseAdapter{
private SpectrumPanel specPanel;
private SpectrumController control;
private ChartPanel panel;
private JFreeChart chart;
public ZoomListener(SpectrumController c){
control = c;
specPanel = c.getSpectrumPanel();
panel = c.getSpectrumChartPanel().getChartPanel();
chart = c.getSpectrumChartPanel().getChartPanel().getChart();
}
@Override
public void mousePressed(MouseEvent e) {
panel.setMouseZoomable(true);
}
@Override
public void mouseExited(MouseEvent e) {
panel.removeMouseListener(this);
panel.setMouseZoomable(false);
panel.setHorizontalAxisTrace(false);
panel.setVerticalAxisTrace(false);
specPanel.getGraphPanel().setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
}
}
如果你有想法将我的滚动条链接到缩放,我会高兴地接受它。谢谢你的帮助。