2016-10-29 2 views
0

J'apprends le Vaadin et j'aimerais déplacer deux boutons en bas de la fenêtre avec espacement entre les boutons. Je suis assez sûr que je devrais remplacer le bouton css dans mon thème mais comment puis-je changer l'emplacement absolu du bouton dans le code java?Comment aligner/déplacer les boutons Vaadin

Voici mon code: Un simple bouton avec un écouteur de clic qui appelle une méthode pop-up (subwindow). Dans le code ci-dessous, j'essaie de déplacer le bouton oui au bas de la fenêtre pop-up.

protected void init(VaadinRequest vaadinRequest) { 
    final VerticalLayout layout = new VerticalLayout(); 

    Button helloButton = new Button("Click Me"); 
     helloButton.addClickListener(e -> helloPopUp()); 

    layout.setMargin(true); 
    layout.setSpacing(true); 
    layout.addComponents(helloButton); 
    setContent(layout); 
} 

private void helloPopUp() { 
     Window subWindow = new Window("Pop Up");      
     HorizontalLayout subContent = new HorizontalLayout(); 
     AbsoluteLayout layout2 = new AbsoluteLayout(); 
     subContent.setMargin(true); 

      Label text = new Label("Hello Pop Up" , ContentMode.PREFORMATTED); 
      subContent.addComponent(text); 

      Button yes = new Button("Yes"); 
      Button no = new Button("No");    
      layout2.addComponent(yes, "left: 50px; bottom: 0px;"); 

      subContent.addComponents(layout2); 
      subContent.addComponent(no); 
      subWindow.setContent(subContent); 
      UI.getCurrent().addWindow(subWindow);   
     } 
+0

j'utiliser un VerticalLayout pour le contenu, puis mettre les deux boutons dans leur propre mise en page horizontale et utiliser setSpacing (true) sur cette mise en page. Utilisez ensuite setComponentAlignment sur la disposition verticale pour définir l'alignement de l'horizontale sur le bas à droite. –

Répondre

2

Voici une façon de le faire sans utiliser AbsoluteLayout

private void helloPopUp() { 
    Window subWindow = new Window("Pop Up"); 
    VerticalLayout subContent = new VerticalLayout(); 
    subContent.setMargin(true); 

    Label text = new Label("Hello Pop Up" , ContentMode.PREFORMATTED); 
    subContent.addComponent(text); 

    Button yes = new Button("Yes"); 
    Button no = new Button("No"); 

    HorizontalLayout buttonsLayout = new HorizontalLayout(); 
    buttonsLayout.addComponents(yes, no); 
    buttonsLayout.setSpacing(true); 

    subContent.addComponent(buttonsLayout); 
    subContent.setComponentAlignment(buttonsLayout, Alignment.BOTTOM_LEFT); 
    subWindow.setContent(subContent); 
    UI.getCurrent().addWindow(subWindow); 
}