Java 如何使用JFreeChart突出显示或聚焦饼图中的特定饼图部分
我正在Swing应用程序中使用JFreeChart开发一个简单的饼图。基于关键事件,我想聚焦或突出显示饼图的特定饼图部分。 你知道JFreeChart中的哪个api提供了这样的功能吗?你可以在你的Java 如何使用JFreeChart突出显示或聚焦饼图中的特定饼图部分,java,swing,jfreechart,Java,Swing,Jfreechart,我正在Swing应用程序中使用JFreeChart开发一个简单的饼图。基于关键事件,我想聚焦或突出显示饼图的特定饼图部分。 你知道JFreeChart中的哪个api提供了这样的功能吗?你可以在你的PiePlot上使用,就像他们展示的那样 我需要一些方法来设置一个边界或设置一个基于某个事件的部分焦点,例如鼠标悬停在特定的部分 我尝试了@trashgood的想法,在中的createDemoPanel()中添加了一个。将鼠标悬停在每个部分上以查看效果。尝试使用不同的百分比值,以获得所需的效果 谢谢你
PiePlot
上使用,就像他们展示的那样
我需要一些方法来设置一个边界或设置一个基于某个事件的部分焦点,例如鼠标悬停在特定的部分
我尝试了@trashgood的想法,在中的createDemoPanel()
中添加了一个。将鼠标悬停在每个部分上以查看效果。尝试使用不同的百分比值
,以获得所需的效果
谢谢你的回复。但是我需要一些方法来根据一些事件(例如:鼠标悬停在特定区域上)设置边界或区域焦点,而不是分解该区域。有办法吗?谢谢@ChayaShetty:将
ChartMouseListener
添加到ChartPanel
中,并在chartMouseMoved()
中调用setExplodePercent()
@ChayaShetty:我添加了一个示例进行尝试。较小的百分比如0.05
可能是好的。交叉张贴。
JFreeChart chart = ChartFactory.createPieChart(…);
PiePlot plot = (PiePlot) chart.getPlot();
plot.setExplodePercent(KEY, PERCENT);
panel.addChartMouseListener(new ChartMouseListener() {
private Comparable lastKey;
@Override
public void chartMouseMoved(ChartMouseEvent e) {
ChartEntity entity = e.getEntity();
if (entity instanceof PieSectionEntity) {
PieSectionEntity section = (PieSectionEntity) entity;
PiePlot plot = (PiePlot) chart.getPlot();
if (lastKey != null) {
plot.setExplodePercent(lastKey, 0);
}
Comparable key = section.getSectionKey();
plot.setExplodePercent(key, 0.10);
lastKey = key;
}
}
@Override
public void chartMouseClicked(ChartMouseEvent e) {
}
});