Gwt 在父FlowPanel中水平居中FlexTable?

Gwt 在父FlowPanel中水平居中FlexTable?,gwt,Gwt,我已经创建了一个FlexTable,我希望它在父FlowPanel中水平居中,如: FlexTable ft = new FlexTable(); ft.add(0, 0, new Label()); ft.add(0, 1, new Orange()); ft.add(0, 2, new Label()); FlowPanel parent = new FlowPanel(); parent.add(ft); // how can I horizontally center the tabl

我已经创建了一个FlexTable,我希望它在父FlowPanel中水平居中,如:

FlexTable ft = new FlexTable();
ft.add(0, 0, new Label());
ft.add(0, 1, new Orange());
ft.add(0, 2, new Label());

FlowPanel parent = new FlowPanel();
parent.add(ft); // how can I horizontally center the table in this div?
表格的内容比父FlowPanel(宽度:auto,浏览器的整个宽度)窄,但表格现在是左对齐的

谢谢

两个选项:

parent.getElement().getStyle().setTextAlign(TextAlign.CENTER);


当然,您可以使用CSS样式。

首先?您正在使用哪个版本的GWT?我问这个问题的原因是,FlexTable中没有类似于您在中使用的add(int,int,Widget)的方法

但是,您可以使用以下代码

    FlexTable ft = new FlexTable();
    ft.setWidget(0, 0, new Label("a"));
    ft.setWidget(0, 1, new Label("b"));
    ft.setWidget(0, 2, new Label("c"));

    FlowPanel parent = new FlowPanel();
    parent.setSize("100%", "100%");
    parent.add(ft);
    parent.getElement().getStyle().setProperty("TextAlign", "center");
    // If you are using Firefox : 
    //parent.getElement().getStyle().setProperty("TextAlign", "-moz-center");
    RootLayoutPanel.get().add(parent);
如果您不想在java代码中提及样式,您可以像使用CSS一样使用CSS

parent.addStyleName("myStyle");
在CSS中

.myStyle{
text-align : center;
}

没有像
setTextAlign(TextAlign.CENTER)这样的方法。参考@Abhijith当然有!
.myStyle{
text-align : center;
}