Java JFreeChart:工具提示停止旋转打印

Java JFreeChart:工具提示停止旋转打印,java,swing,jfreechart,Java,Swing,Jfreechart,我有一个基本的XYPlot和一个系列。 打印方向垂直时,工具提示工作正常。 当打印方向为水平时,工具提示根本不显示, 或者有时错误地使用错误的值 public class HorizontalPlotTooltip { public static void main(String[] args) { JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

我有一个基本的XYPlot和一个系列。 打印方向垂直时,工具提示工作正常。 当打印方向为水平时,工具提示根本不显示, 或者有时错误地使用错误的值

public class HorizontalPlotTooltip {

public static void main(String[] args) {
    JFrame frame = new JFrame();
    frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    XYPlot plot = new XYPlot();
    plot.setOrientation(PlotOrientation.HORIZONTAL);
    NumberAxis xAxis = new NumberAxis("x-axis value");
    xAxis.setAutoRange(true);
    xAxis.setAutoRangeIncludesZero(false);
    xAxis.setInverted(true);
    plot.setDomainAxis(xAxis);
    NumberAxis yAxis = new NumberAxis("y-axis value");
    yAxis.setAutoRange(true);
    yAxis.setAutoRangeIncludesZero(false);
    plot.setRangeAxis(yAxis);
    XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer(true,false);
    StandardXYToolTipGenerator generator = new StandardXYToolTipGenerator(StandardXYZToolTipGenerator.DEFAULT_TOOL_TIP_FORMAT,new DecimalFormat("#"),new DecimalFormat("0.00"));
    renderer.setBaseToolTipGenerator(generator);
    XYSeriesCollection dataset = new XYSeriesCollection();
    XYSeries series = new XYSeries("value");

    for (int i=0; i < 2000; i++) {
        series.add(i,Math.sin(i/500.0));
    }
    dataset.addSeries(series);
    plot.setDataset(dataset);
    plot.setRenderer(renderer);
    JFreeChart chart = new JFreeChart("Inverted - Horizontal plot problem",plot);
    ChartPanel chartPanel = new ChartPanel(chart);
    // long dismiss delay to observe tooltip
    chartPanel.setDismissDelay(100000);
    frame.setPreferredSize(new Dimension(200,700));
    frame.setMinimumSize(new Dimension(200,700));
    frame.setLayout(new BorderLayout());
    frame.add(chartPanel);
    frame.setVisible(true);
}
公共类水平绘图工具提示{
公共静态void main(字符串[]args){
JFrame=新JFrame();
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
XYPlot=新的XYPlot();
plot.setOrientation(PlotOrientation.HORIZONTAL);
NumberAxis xAxis=新的NumberAxis(“x轴值”);
xAxis.setAutoRange(真);
xAxis.setAutoRangeIncludeZero(假);
xAxis.setinversed(真);
plot.setDomainAxis(xAxis);
NumberAxis yAxis=新的NumberAxis(“y轴值”);
yAxis.setAutoRange(真);
yAxis.SetAutoRangeIncludeZero(假);
plot.setRangeAxis(yAxis);
XylineandShaperEnder渲染器=新的XylineandShaperEnder(真、假);
StandardXYToolTipGenerator生成器=新的StandardXYToolTipGenerator(StandardXYZToolTipGenerator.DEFAULT_TOOL_TIP_格式,新的DecimalFormat(“#”)和新的DecimalFormat(“0.00”);
renderer.setBaseToolTipGenerator(生成器);
XYSeriesCollection数据集=新的XYSeriesCollection();
XYSeries系列=新的XYSeries(“值”);
对于(int i=0;i<2000;i++){
增加(i,数学sin(i/500.0));
}
dataset.addSeries(系列);
plot.setDataset(数据集);
plot.setRenderer(渲染器);
JFreeChart图表=新JFreeChart(“反向-水平绘图问题”,绘图);
ChartPanel ChartPanel=新的ChartPanel(图表);
//长时间延迟观察工具提示
chartPanel.setDismissDelay(100000);
frame.setPreferredSize(新尺寸(200700));
框架设置最小尺寸(新尺寸(200700));
frame.setLayout(新的BorderLayout());
frame.add(图表面板);
frame.setVisible(true);
}

当绘图为水平时,是否需要添加额外的代码以使工具提示具有正确的值?

这是JFreeChart中的一个错误:


我将修复它,但首先必须评估哪些渲染器受到影响。

修复程序在GitHub提交。该修复程序适用于我的GitHub版本。非常感谢。