Java 为什么';这个GWT对话框是否将两个按钮居中?
我希望setHorizontalAlignment将我的两个按钮从左边移到中间。你知道为什么这样不行吗?下面是所有相关代码,非常简单Java 为什么';这个GWT对话框是否将两个按钮居中?,java,gwt,dialog,Java,Gwt,Dialog,我希望setHorizontalAlignment将我的两个按钮从左边移到中间。你知道为什么这样不行吗?下面是所有相关代码,非常简单 public void onClick(ClickEvent event) { final DialogBox deleteDialog = new DialogBox(); deleteDialog.setModal(false); deleteDialog.setGlassEnabled(
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());
}
}
当您不为水平面板指定任何宽度时,它将占用其内容宽度的总和。因此,
hashorizontallignment.ALIGN_RIGHT
、hashorizontallignment.ALIGN_LEFT
或任何其他对齐方式都不重要,因为其安装在给定区域中。尝试设置以下内容:
buttonPane.setwidth(100%);
buttonPane.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTRE);
如果这也不起作用,那么您必须使用API设置单元格对齐
setCellHorizontalAlignment(Widget w,HasHorizontalAlignment.HorizontalAlignmentConstant align);
我认为水平面板的长度等于100%。尝试为内部Widget设置对齐您可以尝试将
buttonPane
设置为margin:auto将对话框中的按钮平面居中。在上面的代码中,有HasHorizontalAlignment.ALIGN\u RIGHT
。你试过HasHorizontalAlignment.alignment_CENTER吗?Ganesh,是的。右对齐只是一个测试,看看我是否看到元素向右移动或移动;真倒霉。当我将其与第二个对齐中心的方法配对时,它确实会使其居中,但第二个按钮右侧似乎仍有多余的空间。您提到的最后一种方法无助于解决此问题。你知道为什么前两个按钮会在按钮面板的右边留下多余的空间吗?它的标题似乎是相关的。如果我删除设置的标题行,对话框只够支持两个按钮,正确居中。。我不知道标题行与此有什么关系,如果没有标题文本,它确实有效。一旦我加入文本,对齐就会变得不稳定:(