最终,我决定采用这种解决方案,它可能不是最优雅的,但它确实有效。我有第二个轴
feetAxis,并
AxisChangeListener在第一个轴上添加了一个
meterAxis。当
meterAxis改变设定的范围内
feetAxis。
我使用
SwingUtilities.invokeLater,否则缩小图表时范围将不正确,那么范围
feetAxis只会从0到1。不过没有检查原因。
feetAxis = new NumberAxis("Height [ft]");metersAxis = new NumberAxis("Height [m]");pathPlot.setRangeAxis(0, metersAxis);pathPlot.setRangeAxis(1, feetAxis);metersAxis.addChangeListener(new AxisChangeListener() { @Override public void axisChanged(AxisChangeEvent event) { SwingUtilities.invokeLater(new Runnable() {@Overridepublic void run() { feetAxis.setRange(metersAxis.getLowerBound() * MetersToFeet, metersAxis.getUpperBound() * MetersToFeet); }}); } });


