基本上我希望线图被放大和缩小(总共4个按钮,2个用于X轴(放大和缩小),另外两个用于Y轴)沿着任何轴单击按钮,就像绘制图形一样在负 x 轴和负 Y 轴区域,根据数据点,然后单击按钮,图形应根据按钮单击沿负 x 轴或负 Y 轴放大和缩小。
我怎样才能实现这一点?任何带有详细解释的示例代码都会很有帮助!
private JButton createZoom()
{
final JButton auto = new JButton("ZOOMIN");
auto.setActionCommand("ZOOM_IN_DOMAIN");
auto.addActionListener(new ChartPanel(chart));
return auto;
}
Each button's Action https://docs.oracle.com/javase/tutorial/uiswing/misc/action.html implementation should invoke the corresponding method used by ChartPanel http://www.jfree.org/jfreechart/api/javadoc/org/jfree/chart/ChartPanel.html to create it's popup menu of zoom commands. The implementation of actionPerformed() http://www.jfree.org/jfreechart/api/javadoc/src-html/org/jfree/chart/ChartPanel.html#line.1694 is a convenient guide to the available zooming functionality. For example, the ZOOM_IN_DOMAIN_COMMAND
is handled by invoking zoomInDomain()
. Based on this example https://stackoverflow.com/a/5522583/230513, a typical Zoom X handler relative to the origin is shown below:
private JButton createZoom() {
final JButton zoomX = new JButton(new AbstractAction("Zoom X") {
@Override
public void actionPerformed(ActionEvent e) {
chartPanel.zoomInDomain(0, 0);
}
});
return zoomX;
}
如果默认zoomPoint
就足够了,您可以使用图表面板的实现:
private JButton createZoom() {
final JButton zoomX = new JButton("Zoom X");
zoomX.setActionCommand(ChartPanel.ZOOM_IN_DOMAIN_COMMAND);
zoomX.addActionListener(chartPanel);
return zoomX;
}
相比之下,createZoom()
原来的方法example https://stackoverflow.com/a/5522583/230513展示了如何唤起ChartPanel
method restoreAutoBounds()
,这将恢复两个轴上的自动范围计算。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)