Java 使用GWT小部件调整中间的按钮

Java 使用GWT小部件调整中间的按钮,java,html,gwt,smartgwt,uibinder,Java,Html,Gwt,Smartgwt,Uibinder,我正在制作一个GWT web应用程序。下面是使用添加到面板中的GWT按钮小部件制作的back和next按钮。我想把这些按钮显示在右上角,然后在极左,或者中间的这两个按钮上。请帮我把它对齐。多谢各位 下面是我的mobile View Java代码,其中包括这些按钮 Java代码: package com.zrsol.cricsite.client.view.widget; import com.google.gwt.user.client.ui.Button; import com.google

我正在制作一个GWT web应用程序。下面是使用添加到面板中的GWT按钮小部件制作的back和next按钮。我想把这些按钮显示在右上角,然后在极左,或者中间的这两个按钮上。请帮我把它对齐。多谢各位

下面是我的mobile View Java代码,其中包括这些按钮

Java代码:

package com.zrsol.cricsite.client.view.widget;

import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.googlecode.mgwt.ui.client.widget.panel.flex.FlexPanel;
import com.zrsol.cricsite.client.view.TeamConstants;

public class TopBatsmenView extends Composite{

    private VerticalPanel vpnlBatsmenList = new VerticalPanel();
    private Button btnNext = new Button("Next");
    private Button btnBack = new Button("Back");
    private HorizontalPanel hpnlPagerBatsmen = new HorizontalPanel();


    public TopBatsmenView(){
        FlexPanel fpnlBatsmenList = new FlexPanel();
//      initWidget(vpnlBatsmenList);
        initWidget(fpnlBatsmenList);
        Label lblBatsmenHeading = new Label(TeamConstants.TOPBATSMENHEADING);
        lblBatsmenHeading.setStyleName("bgBlack");
        fpnlBatsmenList.add(lblBatsmenHeading);
        fpnlBatsmenList.add(vpnlBatsmenList);
        hpnlPagerBatsmen.add(btnBack);
        hpnlPagerBatsmen.add(btnNext);
        hpnlPagerBatsmen.setWidth("100%");
        btnNext.setWidth("40%");
        btnBack.setWidth("40%");
        hpnlPagerBatsmen.setHorizontalAlignment(HorizontalPanel.ALIGN_CENTER);
//      hpnlPagerBatsmen.setSpacing(2);
        fpnlBatsmenList.add(hpnlPagerBatsmen);
    }

    public Button getBtnNext() {
        return btnNext;
    }

    public void setBtnNext(Button btnNext) {
        this.btnNext = btnNext;
    }

    public Button getBtnBack() {
        return btnBack;
    }

    public void setBtnBack(Button btnBack) {
        this.btnBack = btnBack;
    }

    public VerticalPanel getVpnlBatsmenList() {
        return vpnlBatsmenList;
    }

    public void setVpnlBatsmenList(VerticalPanel vpnlBatsmenList) {
        this.vpnlBatsmenList = vpnlBatsmenList;
    }

    public HorizontalPanel getHpnlPagerBatsmen() {
        return hpnlPagerBatsmen;
    }

    public void setHpnlPagerBatsmen(HorizontalPanel hpnlPagerBatsmen) {
        this.hpnlPagerBatsmen = hpnlPagerBatsmen;
    }

}
你可以试着打电话

hpnlPagerBatsmen.setHorizontalAlignment(HorizontalPanel.Alignment_CENTER)

在添加按钮或使用

hpnlPagerBatsmen.setCellHorizontalAlignment(bntBack,HasHorizontalAlignment.ALIGN_CENTER);hpnlPagerBatsmen.setCellHorizontalAlignment(bntNext,HasHorizontalAlignment.Alignment_CENTER)

在你添加按钮之后


希望这会有所帮助。

没有必要混合MGWT布局模型(基于flex box模型)和GWT布局面板,因为您将失去flex box模型的所有优点

使您的寻呼机成为FlexPanel:

FlexPanel pager = new FlexPanel();
pager.setOrientation(Orientation.HORIZONTAL);
pager.setFlex(0);
pager.add(btnBack);
pager.add(new FlexSpacer());
pager.add(btnNext);
就是这样——你的布局没有表格、百分比等,而且非常流畅——它可以在所有屏幕上运行

注意:不要在中心区域使用垂直面板,而应该使用另一个FlexPanel-它将占用所有可用空间。此外,您不需要扩展复合-而是扩展FlexPanel(或RootFlexPanel)