다음 문제가 있습니다. 제목 (페이지 상단)과 메뉴 (페이지 중앙)로 페이지를 만들고 싶습니다. 내 코드는 다음과 같습니다.Vaadin의 레이아웃에서 구성 요소 위치
package org.crabar.views;
import com.vaadin.annotations.Theme;
import com.vaadin.navigator.View;
import com.vaadin.navigator.ViewChangeListener;
import com.vaadin.ui.*;
import org.crabar.ViewController;
/**
* Created by Crabar on 01.11.2014.
*/
@Theme("mytheme")
public class StartView extends VerticalLayout implements View {
public StartView() {
setSizeFull();
setMargin(true);
createTitle();
createMenu();
}
private void createMenu() {
VerticalLayout menu = new VerticalLayout();
menu.setSpacing(true);
menu.setWidth(150, Unit.PIXELS);
menu.setHeightUndefined();
addComponent(menu);
setComponentAlignment(menu, Alignment.MIDDLE_CENTER);
Button startGameButton = new Button("Start game", new Button.ClickListener() {
@Override
public void buttonClick(Button.ClickEvent event) {
ViewController.getInstance().changeView(ViewController.GAME_VIEW);
}
});
startGameButton.setWidth(100, Unit.PERCENTAGE);
menu.addComponent(startGameButton);
Button achievementsButton = new Button("Achievements", new Button.ClickListener() {
@Override
public void buttonClick(Button.ClickEvent event) {
//
}
});
achievementsButton.setEnabled(false);
achievementsButton.setDescription("The achievements will be soon...");
achievementsButton.setWidth(100, Unit.PERCENTAGE);
menu.addComponent(achievementsButton);
}
private void createTitle() {
Label label = new Label("Craberoid 2.0");
label.setStyleName("title-style");
addComponent(label);
label.setWidth(null);
label.setHeight(null);
setComponentAlignment(label, Alignment.TOP_CENTER);
}
}
화면의 메뉴 위치를 제외하고 모두 괜찮습니다. 그것은 다음 같습니다 그래서
그렇지를 화면 중앙에 있지만 중앙과 하단 사이. 나는 몇 시간을 보냈지 만 중앙에 메뉴를 설정하고 맨 위에 제목을 설정하는 방법을 찾지 못했습니다.
이 작품! 고맙습니다. expandRatio에 대해 몰라 ... – Crabar