Java 调整GWT中画布的大小,在div中使用d3 svg

Java 调整GWT中画布的大小,在div中使用d3 svg,java,gwt,d3.js,smartgwt,Java,Gwt,D3.js,Smartgwt,我在canvas类别层中绘制了4个d3折线图,我有一个类别的canvas和div列表,如下所示 private ArrayList<Canvas> catCanvasList; private ArrayList<Element> catDivList; private int categoryCount = 0; VLayout categoryLayer; catCanvasList = new ArrayList<Canvas>(); catDivLi

我在canvas类别层中绘制了4个d3折线图,我有一个类别的canvas和div列表,如下所示

private ArrayList<Canvas> catCanvasList;
private ArrayList<Element> catDivList;
private int categoryCount = 0;
VLayout categoryLayer;

catCanvasList = new ArrayList<Canvas>();
catDivList = new ArrayList<Element>();
categoryCount = data.getCategories().size();

for (int i = 0; i < categoryCount; i++) {
    Canvas cat = new Canvas();
    cat.setWidth100();
    cat.setHeight100();
    categoryLayer.addMember(cat);
    catCanvasList.add(cat);
}


int a= 0;

for( final String key: data.getCategories()){

   final Canvas c = catCanvasList.get(a);
   final Element div = DOM.createDiv();
   catDivList.add(div);

   createD3Vis(div,key,data);
   a++
}
但上述方法不适用于调整大小,也不删除div元素 对

我想在窗口上调整画布的大小,并用新的高度和宽度重新绘制d3 vis

有人能告诉我哪里出了问题吗

 categoryLayer.addResizedHandler(new ResizedHandler() {

            @Override
            public void onResized(ResizedEvent event) {

                if (!catDivList.isEmpty() && !catCanvasList.isEmpty()) {
                    for (Element div : catDivList) {
                        div.removeFromParent(); 
                    }

                    catDivList.clear();

                    for(final Canvas c:catCanvasList){
                        c.getDOM().removeAllChildren();
                    }
                }



int a= 0;

   for( final String key: data.getCategories()){

   final Canvas c = catCanvasList.get(a);
   final Element div = DOM.createDiv();
   catDivList.add(div);

   createD3Vis(div,key,data);
   a++
}
}
});