gFlot get color..它何时连接到GWT中的DOM
由于组件连接到DOM后打印的颜色是固定的。我什么时候可以使用GWT调用该方法?我应该实现什么处理程序才能在正确的时间到达 编辑: 实际上下文类似于vp是垂直面板:gFlot get color..它何时连接到GWT中的DOM,gwt,flot,Gwt,Flot,由于组件连接到DOM后打印的颜色是固定的。我什么时候可以使用GWT调用该方法?我应该实现什么处理程序才能在正确的时间到达 编辑: 实际上下文类似于vp是垂直面板: plot=createPlotGraph(); if (plot!=null){ plot.setSize("100%","100%"); vp.add(plot);
plot=createPlotGraph();
if (plot!=null){
plot.setSize("100%","100%");
vp.add(plot);
vp.setCellHeight(plot, "100%");
plot.addAttachHandler(new AttachEvent.Handler() {
@Override
public void onAttachOrDetach(AttachEvent event) {
plot.getModel().getSeries().get(0).getAutoGeneratedColor()
System.out.println(plot.getModel().getSeries().length());
System.out.println(plot.getModel().getSeries().get(0).getColor());
}
});
}
我发现我有3个或更多的系列,它们都被正确地渲染了,我在屏幕上看到了所有的ok,但是println写下的颜色总是空的
其他尝试:
if (plot!=null){
plot.setSize("100%","100%");
plot.addAttachHandler(new AttachEvent.Handler() {
@Override
public void onAttachOrDetach(AttachEvent event) {
System.out.println(plot.getModel().getSeries().length());
System.out.println(plot.getModel().getSeries().get(0).getColor());
}
});
vp.add(plot);
vp.setCellHeight(plot, "100%");
}
同样的结果
更新,其他请尝试:
plot.setSize("100%","100%");
plot.addAttachHandler(new AttachEvent.Handler() {
@Override
public void onAttachOrDetach(AttachEvent event) {
Scheduler.get().scheduleDeferred(new ScheduledCommand() {
@Override
public void execute() {
System.out.println(plot.getModel().getSeries().length());
System.out.println(plot.getModel().getSeries().get(0).getColor());
}
});
}
});
相同的结果…null您应该向小部件添加一个:
widget.addAttachHandlernew AttachEvent.Handler{
@凌驾
公共事件{
如果event.isAttached{
//小部件已连接到DOM
}否则{
//独立的
}
}
};
如果您在访问JSNI包装器的值(在本例中为gflot)时遇到问题,那么将调用包装到ScheduledCommand中通常会有所帮助。这将确保在浏览器事件循环返回后执行该命令,此时包装器应该在DOM中正确初始化
Scheduler.get.scheduleDeferrednew ScheduledCommand{
@凌驾
公开无效执行{
System.out.printlnplot.getModel.getSeries.length;
System.out.printlnplot.getModel.getSeries.get0.getColor;
}
};
直接从gFlot论坛获得的实际解决方案:
plot.getPlot().getData().get(n).getString("color")
系列不是直接使用的,而是复制的,并且颜色不设置在原始系列上
希望能对其他人有所帮助如果使用widget,您指的是我已经尝试过的gflot实例,但是…我的结果为空,可以提供更多详细信息吗?你试过什么?您是否遵循了上的说明?我有一个GWT SimplePanel,在外部事件(按钮事件)中,它是我高尔夫球的容器。基本上,顺序是:按钮->gflot创建-->在gflot对象上添加您建议的事件处理程序…在事件测试系列颜色中…请使用尽可能多的相关信息更新原始问题。将其压缩到注释中不会有多大帮助。看起来应该首先添加附加处理程序,然后添加绘图。否则,在添加处理程序之前,可能会触发AttachEvent…只是尝试了在编辑中看到的方式…相同的结果3系列,空颜色请查看我的更新答案。似乎问题出在其他地方。。。