1

setHorizo​​ntalAlignment が 2 つのボタンを左から中央に移動することを期待します。なぜこれが機能しないのですか?関連するコードはすべて以下にあり、非常に簡単です。

ここに画像の説明を入力

public void onClick(ClickEvent event) {
            final DialogBox deleteDialog = new DialogBox();
            deleteDialog.setModal(false);
            deleteDialog.setGlassEnabled(true);

            HorizontalPanel buttonPane = new HorizontalPanel();
            buttonPane.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_RIGHT);

            buttonPane.add(deleteDialogOKButton);
            buttonPane.add(deleteDialogCancelButton);

            deleteDialog.center();      

            deleteDialog.add(buttonPane);       
            deleteDialog.setText("Delete this Station?");

            deleteDialogOKButton.addClickHandler(new ClickHandler() {
                public void onClick(ClickEvent event) {
                    stationService.deleteStation(station, new DeleteStationCallback());
                    deleteDialog.hide();
                }});

            deleteDialogCancelButton.addClickHandler(new ClickHandler() {
                public void onClick(ClickEvent event) {
                    deleteDialog.hide();
                }});

            deleteDialog.show();
            //stationService.deleteStation(station, new DeleteStationCallback());
        }
    }
4

1 に答える 1

2

水平パネルに幅を指定しない場合、コンテンツの幅の合計が使用されます。HasHorizontalAlignment.ALIGN_RIGHTそのため、HasHorizontalAlignment.ALIGN_LEFTまたはその他の配置は、指定された領域に収まるので問題ありません。以下のように設定してみてください。

buttonPane.setwidth(100%);
buttonPane.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTRE);

これでもうまくいかない場合は、API を使用してセルの配置を設定する必要があります

setCellHorizontalAlignment(Widget w,HasHorizontalAlignment.HorizontalAlignmentConstant align);
于 2012-12-01T08:02:22.817 に答える