如何在GWT中调用外部方法?

时间:2014-08-06 16:17:46

标签: java gwt flowlayoutpanel

这是我的代码:

final DialogBox menuWrapper = new DialogBox(true);
MenuBar options = new MenuBar(true);
menuWrapper.add(options);
options.addItem("First", new ScheduledCommand()
        {
            FlowPanel flowpanel;
            ..
            flowpanel = new FlowPanel();
            flowpanel.add(txtFirst);
            ..
            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);
                    }
            }
        }

对于这一行

   flowpanel.add(panelChart);

我有这个错误:

Cannot refer to a non-final variable flowpanel inside an inner class defined in a different method

我想将我的所有小部件添加到PopupPanle上的flowPanel,但我无法定义最终方法,任何解决此问题的解决方案?感谢。

1 个答案:

答案 0 :(得分:0)

您需要在FlowPanel声明之前添加修饰符final

final FlowPanel flowpanel = new FlowPanel();

或者,您可以将此FlowPanel设为类变量:

private FlowPanel flowpanel;
...
// your class methods

当您在延迟或异步方法中引用对象时,编译器希望确保在需要时不会重新分配此对象。