如何右键对齐Horizo​​ntalPanel(GWT)上的按钮

Keo*_*eox 23 java gwt

我正在尝试实现一个简单的对话框.我想要确定并取消对话框底部对齐的按钮.我将按钮嵌入Horizo​​ntalPanel并尝试将水平对齐设置为RIGHT.但是,这不起作用.如何使按钮对齐?谢谢.这是片段:

private Widget createButtonsPanel() {
    HorizontalPanel hp = new HorizontalPanel();
    hp.setCellHorizontalAlignment(saveButton, HasHorizontalAlignment.ALIGN_RIGHT);
    hp.setCellHorizontalAlignment(cancelButton, HasHorizontalAlignment.ALIGN_RIGHT);
    hp.add(saveButton);
    hp.add(cancelButton);       

    return hp;
}
Run Code Online (Sandbox Code Playgroud)

zmi*_*ila 29

关键是setHorizontalAlignment 添加按钮之前调用,如下所示:

final HorizontalPanel hp = new HorizontalPanel();
final Button saveButton = new Button("save");
final Button cancelButton = new Button("cancel");

// just to see the bounds of the HorizontalPanel
hp.setWidth("600px");
hp.setBorderWidth(2);

// It only applies to widgets added after this property is set.
hp.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_RIGHT);

hp.add(saveButton);
hp.add(cancelButton);

RootPanel.get().add(hp);
Run Code Online (Sandbox Code Playgroud)

如果你想让你的按钮紧密在一起 - 将它们放入一个新的容器中,然后将容器放入右边的水平面板中


Pet*_*ner 14

再向该线程添加一个提示:如果您使用UiBinder来布局面板,那么在向面板添加任何小部件之前,您将无法确定如何设置对齐属性.另外,直接在面板上使用bean属性,比如...

<g:HorizontalPanel horizontalAlignment="ALIGN_RIGHT">
    ....
</g:HorizontalPanel>
Run Code Online (Sandbox Code Playgroud)

......不起作用.诀窍?包装您需要在<g:cell>元素中设置对齐的DockPanel,Horizo​​ntalPanel或VerticalPanel的所有子项:

<g:HorizontalPanel>
    <g:cell width="800px" horizontalAlignment="ALIGN_RIGHT">
        <g:Button ui:field="closeButton" text="Close" />
    </g:cell>
</g:HorizontalPanel>
Run Code Online (Sandbox Code Playgroud)

请注意,在大多数情况下,如果在水平面板上使用此选项,则可能需要设置"宽度"和对齐,反之亦然.有关详细信息,请参阅CellPanelJavadoc.


bik*_*ode 5

您可能要使用Firebug来检查Horizo​​ntalPanel本身的范围。您可能需要一个

hp.setWidth("100%");
Run Code Online (Sandbox Code Playgroud)

通常,Horizo​​ntalPanel会根据内容调整大小,因此,如果在其中放置几个​​按钮,由于表格本身不会展开,因此它将保持对齐状态。