如何确定线程组件GWT的处理顺序?

时间:2014-08-08 13:06:15

标签: java gwt

我有这段代码:

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);图表;

图表总是最后的,任何解决方案?感谢。

1 个答案:

答案 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**将显示在图表下方。

相关问题