1

我有一个对象PanelDataHandler就像

 @Singleton
 public class PanelDataHandler {
    private List<Panel> panelDetails;
    private  Integer nextId;
    @Inject
    public PanelDataHandler(){
        panelDetails = new ArrayList<Panel>();
        nextId = 0;

    }     
...
}

现在我的代码中有两个具有不同处理程序的按钮。on 按钮用于保存已保存面板的详细信息,另一个用于显示输入的面板列表
我浏览了很多帖子,但 stackoverflow 问题无法找到解决方案。
我想在一个处理程序中创建一个实例PanelDataHandler pdh并将面板添加到其中,并在另一个处理程序中获取添加的面板列表。

public class PanelSaveEventHandler implements EventHandler {

    public void savePanelsList() {
       pdh.addPanels();

    }

}

获取列表

public class PanelClickEventHandler implements EventHandler{
    public void displayPanelGrid() {

        MyPagingDataGrid<Panel> grid = new MyPagingDataGrid<Panel>();
        grid.setHeight("500px");
        grid.setDataList(pdh.getPanelList());
        RootPanel.get().add(grid);

    }

}

我的 Ginjector 界面

@GinModules({ DispatchAsyncModule.class, ClientModule.class })
public interface ClientGinjector extends Ginjector {
...
...

    AsyncProvider<PanelDataHandler> getPanelDataHandler();
}

我的入口点是

public class PanelEstimator implements EntryPoint {

    private final ClientGinjector ginjector = GWT.create(ClientGinjector.class);
    @Override
    public void onModuleLoad() {
        // This is required for Gwt-Platform proxy's generator
        DelayedBindRegistry.bind(ginjector);    
        ginjector.getPlaceManager().revealCurrentPlace();
        System.out.println(ginjector.getPanelDataHandler());
    }

}

我可以在哪里以及如何创建实例PanelDataHandler以便它可以像上面一样使用

提前感谢您的答案

4

1 回答 1

1

终于解决了我的问题,感谢您的宝贵建议
对于使用单例对象,它必须被注入即,

@Inject
PanelDataHandler pdh;

它不是

PanelDataHandler pdh=新 PanelDataHandler();

于 2013-09-06T05:09:55.847 回答