此代码出错
@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面板还有其他更好的解决方案吗?
答案 0 :(得分:1)
首先,您从mainDockPanel中删除了panel1。
然后你使用if(mainDockPanel.getWidgetDirection(panel1).equals(DockPanel.EAST)){
来自API文档
小部件的布局方向,如果它不是此面板的子级,则返回null 块引用
有可能,你正在获得NPE