【发布时间】:2019-01-07 15:21:49
【问题描述】:
我需要显示一个动态添加数据的 XyLineChart。我已经使用图表定制器从 db 中读取数据,并添加一些额外的逻辑并将其添加到图表中。但我无法在鼠标悬停时为图表上的每个数据点创建工具提示。以下是我的定制器代码。
在鼠标悬停时创建工具提示的正确方法是什么?
public class MyChartCustomizer extends JRAbstractChartCustomizer{
@Override
public void customize(JFreeChart chart, JRChart jrChart) {
XyPlot plot= chart.getXyPlot;
XYSeriesCollection ds = (XYSeriesCollection) plot.getDataset();
XYSeries x1 = new XYSeries("C 1", true, true);
x1.add(10,20);
XYBarRenderer ren = (XYBarRenderer) plot.getRenderer();
plot.setRenderer(ren);
ren.setSeriesToolTipGenerator(0, new XYToolTipGenerator() {
@Override
public String generateToolTip(XYDataset arg0, int arg1, int arg2) {
return "C 1";
}
});
ren.setToolTipGenerator(new XYToolTipGenerator() {
@Override
public String generateToolTip(XYDataset arg0, int arg1, int arg2) {
return "C 1";
}
});
chart.fireChartChanged();
}
}
}
【问题讨论】:
-
这不是图表本身的功能。封闭的
ChartPanel在getToolTipText()中处理这个问题。在桌面环境之外,您可能会查看合适的标签生成器。 -
我们可以自定义chartPanel工具Tiptext吗?当我使用图表自定义时,我无法访问图表面板。是否有可能你可以给我一些代码示例来自定义工具提示文本..请注意我正在添加图表自定义器类中的数据..
-
除非封闭的
ChartPanel调用getToolTipText(),否则您的自定义工具提示文本将永远不会显示。你如何显示你的报告?你能添加一个像this这样的标签生成器吗? -
我用 xyline 图表(空图表)设计了报告并配置了图表定制器。我的问题中给出了图表定制器。在定制器类中,我无法获取 chartPanel 对象,也不确定如何为其生成工具提示。由于我需要动态生成 SQL,因此获取数据并将其设置为图表。我还自定义图表标签系列颜色顺序...
-
我正在将报告部署到 jasper 服务器并使用自定义输入控件运行相同的报告。因此基于输入控件生成 sql 查询。这就是我设计带有图表的空白报告并部署到 jasper 服务器的原因。使用自定义数据源和定制器,我正在渲染 100% 动态生成的图表。
标签: java jasper-reports jfreechart