我正在尝试使用gwt-charts库在gwt-Project中显示多个图表,但是无论我使用哪种布局或哪种小部件,都只能看到最后创建的图表。

TableExample与此相同:http://gwt-charts.appspot.com/#table

然后将图表添加到主面板,如下所示:

private DockLayoutPanel mainPanel = new DockLayoutPanel(Unit.EM);
private TabLayoutPanel tabLayoutPanel = new TabLayoutPanel(1.5, Unit.EM);

@Override
public void onModuleLoad() {
    Window.enableScrolling(false);
    Window.setMargin("0px");

    tabLayoutPanel.add(new TableExample(), "Here should the first table be");
    tabLayoutPanel.add(new HTML("Lorem ipsum dolor sit amet"), "Lorem");
    tabLayoutPanel.add(new TableExample(), "Only visible table");
    tabLayoutPanel.add(new HTML("ga ga ga lalasdf a3ifa"), "Other text");

    mainPanel.add(tabLayoutPanel);
    RootLayoutPanel.get().add(mainPanel);

}


具有HTML的两个选项卡和第二个TableExample可以显示正确的内容,但具有TableExample的第一个选项卡为空。

有谁知道为什么只有一个gwt-chart是可见的?我没有收到任何错误消息或其他信息。

最佳答案

问题在于,TableExample仅在加载图表api后执行Runnable之后才绘制图表。当您创建两个TableExamples时,它们都尝试加载图表api,但是只有其中一个成功,因此仅调用了Runnables之一。

要解决此问题,您只需加载一次图表API(也许是在您的应用首次加载时)。然后可以将TableExample更改为仅绘制自身而不必先加载api。

10-07 23:17