0

当用户单击饼图的一部分时,如何创建弹出屏幕?

例如;

  • 我的饼图显示了语言的分布,例如英语 50% 德语 20% 法语 20% 和意大利语 10% 等。
  • 当用户单击饼图中的英文部分时,必须显示一个显示有关英文分布信息的弹出屏幕。

我如何在 vaadin 中添加 invient 图表来做到这一点?

4

1 回答 1

1

使用com.invient.vaadin.charts.InvientCharts.PointClickListener这样的:

chart.addListener(new PointClickListener() {
    @Override
    public void pointClick(PointClickEvent pointClickEvent) {
        Item item = pointItems.get(pointClickEvent.getPoint());

        Window popupWindow = new Window();
        // Add stuff to your window
        getWindow().addWindow(popupWindow);
    }
});

非常简单:) getWindow() 方法是在 Component 中定义的,所以调用类应该是实现它的类。如果您使用的是ThreadLocal 模式,您可以在代码中的任何位置获取对主窗口的引用。

编辑:我忘了提到 pointItems 在类中声明如下:

Map<Point, Item> pointItems = new HashMap<Point, Item>();

在创建点时,我将 Point 和 Item 对象放到地图上。您还可以创建自己的 Point 实现并将 Item 封装在其中。太糟糕了 Invient Charts 几乎声明了每个类 final 所以你不能扩展例如。日期时间点:/

于 2012-10-13T18:25:42.247 回答