滚动条上的ChangeListener使用放大按钮

时间:2015-06-24 07:47:05

标签: java swing jfreechart

我是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));
    }
}

如果你有想法将我的滚动条链接到缩放,我会高兴地接受它。谢谢你的帮助。

0 个答案:

没有答案