我正在尝试使用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。