使用gwt visualization 1.1.2 API自定义PieChart的默认工具提示文本时出现问题

使用gwt visualization 1.1.2 API自定义PieChart的默认工具提示文本时出现问题,gwt,tooltip,gxt,gwt-visualization,Gwt,Tooltip,Gxt,Gwt Visualization,我在自定义PieChart的默认工具提示文本时遇到困难。下面是API的详细信息:gwt visualization 1.1.2、Gwt2.0和Gxt 2.1.1。跟随,但没有运气 代码: JSNI: 数据表: private AbstractDataTable createTable(){ DataTable data=DataTable.create(); data.addColumn(ColumnType.STRING,“任务”); data.addColumn(ColumnType.NUM

我在自定义PieChart的默认工具提示文本时遇到困难。下面是API的详细信息:gwt visualization 1.1.2、Gwt2.0和Gxt 2.1.1。跟随,但没有运气

代码:

JSNI:

数据表:

private AbstractDataTable createTable(){
DataTable data=DataTable.create();
data.addColumn(ColumnType.STRING,“任务”);
data.addColumn(ColumnType.NUMBER,“每天小时”);
//赋值变量
数据=addTooltipColumn(数据);
列表asList=Arrays.asList(34,12,34,32,67,21,2,45,2,4,28,5,78);
data.addRows(asList.size());
int i=0;
for(整数:asList){
数据设置值(i,0,“工作”+i);
data.setValue(i,1,整数);
设置值(i,2,“…工具提示Txt…”);
i++;
}
返回数据;
}

工具提示目前似乎在
图表中不受支持(请参阅以获取参考)

我也在纯javascript中测试了它,工具不会显示在图表中:

如果在上述示例中从
PieChart
更改为
ColumnChart
,它将显示工具提示。
您所能做的就是使用
PieChart
创建静态工具提示动作

一般来说,我建议使用非官方的而不是官方的
gwt可视化
库,因为前者是更新的,支持最新的功能和现成的图表(数据角色、工具提示等)

我找到了这个链接来定制我的工具提示,效果非常好。
希望这能帮助别人节省时间

是否有错误消息,或者您没有看到任何工具提示它看起来如何?@Ümit-控制台上没有JS错误。我一直试图改变的是并没有在hover上得到反映。您可以在附加的image.hmm中看到悬停时的默认文本,并且您显示的是普通文本而不是HTML工具提示?@但我注意到另一件事,data.getColumnLabel(2)-没有返回任何标签文本,它是空的。这意味着工具提示列不是通过JSNI方法添加的。上面的代码有问题吗?代码应该没问题。您可以尝试调试它(逐步完成该方法),也可以尝试将
addTooltipColumn
的返回值分配给
DataTable
变量(以防该方法复制)非常感谢您提供的信息。这对我帮助很大。由于我必须在IOS(IPAD)上支持这些图表,我不知道这些gwt图表是否是非flash图表。无论如何,我可以实现PieChart的工具提示吗?最重要的是,你值得我的赏金。
gwt图表
只是google图表库的一个更新包装,类似于
gwt可视化
。唯一的区别是,这是积极维持的。AFAIK唯一基于flash的图表是
MotionChart
和旧的
GeoMap
。关于
PieChart
的工具提示,您所能做的就是手动创建
div
并处理onHover事件以显示div,并使用gwt charts api禁用
PieChart
的内置工具提示。工具提示适用于除PieChart.com以外的其他图表<代码>图表
不支持工具提示。所以gwt库并没有什么不同。一般来说,我建议使用
gwt图表
,因为它是主动维护的。
    private native DataTable addTooltipColumn(DataTable data) /*-{
        data.addColumn({type: 'string', role: 'tooltip'});
        return data;
    }-*/;
 private AbstractDataTable createTable() {
          DataTable data = DataTable.create();
          data.addColumn(ColumnType.STRING, "Task");
          data.addColumn(ColumnType.NUMBER, "Hours per Day");

//Assigning the variable

      data = addTooltipColumn(data);

            List<Integer> asList = Arrays.asList(34,12,34,32,67,21,2,45,2,4,28,5,78);
            data.addRows(asList.size());
            int i=0;
            for (Integer integer : asList) {
                data.setValue(i, 0, "Work"+i);
                data.setValue(i, 1, integer);
                data.setValue(i, 2, "....Tool Tip Txt...");
                i++;
            }
            return data;
          }