GWT,DockPanel中从EAST到WEST的交换面板出错反之亦然?

时间:2013-04-25 05:55:39

标签: gwt dockpanel

此代码出错

@Override
public void onClick(ClickEvent event) {
    // TODO Auto-generated method stub
    mainDockPanel.remove(panel1);
    mainDockPanel.remove(panel2);
    if(mainDockPanel.getWidgetDirection(panel1).equals(DockPanel.EAST)){
        mainDockPanel.add(panel1, DockPanel.WEST);
        mainDockPanel.add(panel2, DockPanel.EAST);
    }
    else if (mainDockPanel.getWidgetDirection(panel1).equals(DockPanel.WEST)){
        mainDockPanel.add(panel1, DockPanel.EAST);
        mainDockPanel.add(panel2, DockPanel.WEST);
    }
}

这段代码出了什么问题?

此外,交换2面板还有其他更好的解决方案吗?

1 个答案:

答案 0 :(得分:1)

首先,您从mainDockPanel中删除了panel1。 然后你使用if(mainDockPanel.getWidgetDirection(panel1).equals(DockPanel.EAST)){ 来自API文档

  

小部件的布局方向,如果它不是此面板的子级,则返回null   块引用

有可能,你正在获得NPE