我有这段代码:
final DialogBox menuWrapper = new DialogBox(true);
MenuBar options = new MenuBar(true);
menuWrapper.add(options);
options.addItem("First", new ScheduledCommand(){
FlowPanel flowpanel;
..
flowpanel = new FlowPanel();
flowpanelReport.add(new HTML("<menu><b>My Firts Chart</b></menu>"));
ChartLoader chartLoader = new ChartLoader(ChartPackage.CORECHART);
chartLoader.loadApi(new Runnable() {
@Override
public void run() {
..
LineChart lineChart = new LineChart();
Datatable ..
lineChart.draw(dataTable);
panelChart.add(lineChart);
addPanel(panelChart);
}
private void addPanel(LayoutPanel panelChart) {
flowpanel.add(panelChart);
}
flowpanelReport.add(new HTML("<menu><b>My Second Chart</b></menu>"));
}
}
我希望按以下顺序查看小部件:我的第一张图表(HTML);图表;我的第二张图表(HTML);
但它们按此顺序处理:我的第一张图表(HTML);我的第二张图表(HTML);图表;
图表总是最后的,任何解决方案?感谢。
答案 0 :(得分:1)
图表始终是最后一个,因为加载图表库需要时间,只有在完成后才会添加面板。
您可以将代码更改为以下内容:
final FlowPanel chartPanel = new FlowPanel();
flowpanel.add(chartPanel);
chartLoader.loadApi(new Runnable() {
@Override
public void run() {
...
chartPanel.add(**YOUR CHART HERE**);
}
});
flowpanel.add(**SOME OTHER CONTENT**);
这样,您可以创建按顺序插入的占位符(chartPanel
),并在图表库完成加载时填充。 **SOME OTHER CONTENT**
将显示在图表下方。