Проблема горизонтального выравнивания - PullRequest
1 голос
/ 28 января 2010

Я хочу разместить несколько кнопок в центре панели, но это не работает. Вот мой код:

import com.extjs.gxt.ui.client.widget.HorizontalPanel;
import com.extjs.gxt.ui.client.widget.Label;
import com.extjs.gxt.ui.client.widget.LayoutContainer;
import com.extjs.gxt.ui.client.widget.VerticalPanel;
import com.extjs.gxt.ui.client.widget.button.Button;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.client.ui.HasAlignment;
import com.google.gwt.user.client.ui.RootPanel;

private void addStartupBox() {
    VerticalPanel boxPanel = setBoxSize();      
    com.google.gwt.user.client.ui.Label title = createBoxTitle("Prüfungen");        

    // Create second panel for the content of a box     
    com.google.gwt.user.client.ui.VerticalPanel boxContent = new com.google.gwt.user.client.ui.VerticalPanel();
    boxContent.setSpacing(10);
    boxContent.setHorizontalAlignment(com.google.gwt.user.client.ui.VerticalPanel.ALIGN_CENTER);

    // Create content for the box
    Button but1 = new Button("A");
    but1.setPixelSize(280, 25);     

    Button but2 = new Button("B");
    but2.setPixelSize(280, 25);

    Button but3 = new Button("C");
    but3.setPixelSize(280, 25);

    // Add buttons to boxContent
    boxContent.add(but1);
    boxContent.add(but2);
    boxContent.add(but3);

    // Add title and boxContent to boxPanel     
    boxPanel.add(title);
    boxPanel.add(boxContent);

    RootPanel.get("boxPanelContainer").add(boxPanel);
}

результат:

здесь http://tinyurl.com/ycs2q4o

и кнопки выровнены по левому краю. после этого я попробовал это так:

boxContent.setHorizontalAlignment(HasAlignment.ALIGN_CENTER);

но кнопки по-прежнему выровнены по левому краю. моей последней идеей было использовать вертикальную панель ExtGWT с этим:

boxContent.setHorizontalAlign(HorizontalAlignment.CENTER);

но, к сожалению, тоже не работает. может кто-нибудь сказать мне, что я делаю не так?

Ответы [ 2 ]

3 голосов
/ 29 января 2010

проблема решена .... я добавил еще одну панель, которая выровнена по левому краю. Вот код:

private void addStartupBox() {
    VerticalPanel boxPanel = setBoxSize();      
    com.google.gwt.user.client.ui.Label title = createBoxTitle("Prüfungen");        
    boxPanel.setHorizontalAlign(HorizontalAlignment.CENTER);

    // Create second panel for the content of a box     
    com.google.gwt.user.client.ui.VerticalPanel boxContent = new com.google.gwt.user.client.ui.VerticalPanel();
    boxContent.setSpacing(10);

    // Create third panel, which contains the label
    VerticalPanel labelPanel = new VerticalPanel();
    labelPanel.setHorizontalAlign(HorizontalAlignment.LEFT);        

    // Create content for the box
    Button but1 = new Button("A");
    but1.setPixelSize(280, 25);     

    Button but2 = new Button("B");
    but2.setPixelSize(280, 25);

    Button but3 = new Button("C");
    but3.setPixelSize(280, 25);

    // Add buttons to boxContent
    boxContent.add(but1);
    boxContent.add(but2);
    boxContent.add(but3);

    // Add title to third panel 
    labelPanel.add(title);      

    // Add title and boxContent to boxPanel
    boxPanel.add(labelPanel);
    boxPanel.add(boxContent);

    RootPanel.get("boxPanelContainer").add(boxPanel);
}
2 голосов
/ 29 января 2010

Добавьте следующий код и попробуйте

boxContent.setCellHorizontalAlignment(but1, HasHorizontalAlignment.ALIGN_CENTER);
boxContent.setCellHorizontalAlignment(but2, HasHorizontalAlignment.ALIGN_CENTER);
boxContent.setCellHorizontalAlignment(but3, HasHorizontalAlignment.ALIGN_CENTER);

Над кодом необходимо добавить после добавления кнопок к содержимому поля (перед "RootPanel.get (" boxPanelContainer "). Add (boxPanel);" эта строка).

...