2016-10-29 3 views
0

Ich lerne Vaadin und ich möchte zwei Knöpfe zum Ende des pop-up Fensters mit Abstand zwischen den Knöpfen bewegen. Ich bin mir ziemlich sicher, dass ich die Schaltfläche css in meinem Theme überschreiben müsste, aber wie ändere ich die absolute Position der Schaltfläche in Java-Code?Wie man Vaadin Knöpfe justiert/bewegt

Hier ist mein Code: Eine einfache Schaltfläche mit einem Klick-Listener, die eine Popup-Methode (Subwindow) aufruft. Im folgenden Code versuche ich, die Ja-Schaltfläche an den unteren Rand des Popup-Fensters zu bewegen.

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

ich mit einem Vertical für den Inhalt verwenden würde, dann setzen Sie die beiden Tasten in ihre eigene horizontale Gliederung und verwenden setSpacing (true) auf dieses Layout. Verwenden Sie dann im vertikalen Layout setComponentAlignment, um die Ausrichtung von horizontal nach unten rechts festzulegen. –

Antwort

2

Hier ist ein Weg, dies zu tun, ohne 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); 
} 
Verwandte Themen