这是我的代码:
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,但我无法定义最终方法,任何解决此问题的解决方案?感谢。
答案 0 :(得分:0)
您需要在FlowPanel声明之前添加修饰符final
:
final FlowPanel flowpanel = new FlowPanel();
或者,您可以将此FlowPanel设为类变量:
private FlowPanel flowpanel;
...
// your class methods
当您在延迟或异步方法中引用对象时,编译器希望确保在需要时不会重新分配此对象。