我一直在寻找答案,但由于我找不到任何答案,我会发布问题。
我绘制了一个绘图,下面的列表显示了一些数据,每一行的参数之一在绘图中绘制。
当用户点击列表中的某个视图时,我试图更改该点的颜色,以反映该行与该点匹配的情节,但我还没有能够复制它。
有什么方法可以获得图表的特定点,改变它的颜色吗?
提前致谢。
答案 0 :(得分:0)
我不知道你想要做的是否可行,但你可以尝试在你的情节中添加一个系列,其中包含你想要在用户点击时突出显示的点。完成新的点击后,您只需删除添加的系列并添加一个包含新点的新系列。
添加的系列必须具有不同的风格,以便您可以看到“更改的颜色”,并且必须是最后添加的系列,因此它将处于forground状态。
希望有所帮助
如何使其适应您的用例,可以扩展XYPlot
类,创建SeriesType highlightedPoint
属性并添加类似(未测试)的方法:
public void highlightPoint(Number x, Number y, FormatterType formatter){
// if there is already a highlighted point we remove it (we want to highlight just one point)
if(highlightedPoint != null) {
removeSeries(highlightedPoint);
highlightedPoint = null;
}
// we need to highlight the new point, which means adding a serie on top of the others
highlightedPoint = new SimpleXYSeries("Highlighted Point");
highlightedPoint.addFirst(x,y);
addSeries(highlightedPoint, formatter);
}
每次用户点击列表时,您只需在绘图实例上调用此方法。