GWT中水平面板中的原因不明的间距

时间:2010-01-14 22:56:09

标签: java gwt user-interface panel

我正在向水平面板添加小部件,我希望它们在左下角一个接一个。

即使我设置了spacing = 0和alignment = left,小部件之间仍然有空格。它们在面板中均匀分布。

请在此处查看小部件C'tor的代码以及添加新标签的功能(切换按钮) tabsPanel是一个horizo​​ntalPanel,您可以看到它根据区域设置

左/右对齐

任何建议将不胜感激 感谢....

public TabsWidgetManager(int width, int height, int tabs_shift_direction){ 
    DecoratorPanel decorContent = new DecoratorPanel();
    DecoratorPanel decorTitle = new DecoratorPanel();
    widgetPanel.setSize(Integer.toString(width), Integer.toString(height));

    tabsPanel.setSize(Integer.toString(UIConst.USER_CONTENT_WIDTH), Integer.toString(UIConst.TW_DEFAULT_TAB_HEIGHT));
    tabsPanel.setSpacing(0);

    if (tabs_shift_direction==1)
        tabsPanel.setHorizontalAlignment(HorizontalPanel.ALIGN_LEFT);
    else
        tabsPanel.setHorizontalAlignment(HorizontalPanel.ALIGN_RIGHT);
    decorTitle.add(tabsPanel);

    contentPanel.setSize(Integer.toString(UIConst.USER_CONTENT_WIDTH), Integer.toString(UIConst.USER_CONTENT_MINUS_TABS_HEIGHT));
    decorContent.add(contentPanel);
    widgetPanel.add(decorTitle, 0, 0);

    widgetPanel.add(decorContent, 0, UIConst.TW_DEFAULT_TAB_HEIGHT+15);

    initWidget(widgetPanel);
}

public void addTab(String title, Widget widget){
    widget.setVisible(false);
    ToggleButton tab = new ToggleButton(title);
    tabsList.add(tab);
    tab.setSize(Integer.toString(UIConst.TW_TAB_DEFAULT_WIDTH), Integer.toString(UIConst.TW_TAB_DEFAULT_HEIGHT));
    tab.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            handleTabClick((ToggleButton)event.getSource());

        }
    });

    //adding to the map
    tabToWidget.put(tab, widget);

    // adding to the tabs bar 
    tabsPanel.add(tab);
    //adding to the content
    contentPanel.add(widget);
}

1 个答案:

答案 0 :(得分:0)

我认为contentPanel是你的Horizo​​ntalPanel。 Horizo​​ntalPanel将生成一个html表。您正在设置面板的宽度。如果宽度宽于子窗口小部件的所有宽度的总和,则表格将均匀地展开窗口小部件。移除setWidth()电话。