官术网_书友最值得收藏!

Time for action – the main layout

Let's start by coding the main layout using our well known friend VerticalLayout and the new guy HorizontalLayout:

  1. Create a new Vaadin project. For this example, we will use layout-framework as project name and LayoutFrameworkUI as the UI class.
  2. Create a new Java class MainLayout.
  3. Let MainLayout extend VerticalLayout:
    public class MainLayout extends VerticalLayout {
    
    }
  4. Add layouts for upper and lower sections of MainLayout:
    public class MainLayout extends VerticalLayout {
    
      private VerticalLayout upperSection = new VerticalLayout();
      private HorizontalLayout lowerSection = new     HorizontalLayout();
      private VerticalLayout menuLayout = new VerticalLayout();
      private VerticalLayout contentLayout = new VerticalLayout();
      
    }
  5. Add the following default constructor for MainLayout:
    public MainLayout() {
      upperSection.addComponent(new Label("Header"));
      menuSection.addComponent(new Label("Menu"));
      contentSection.addComponent(new Label("Content"));
      
      lowerSection.addComponent(menuLayout);
      upperSection.addComponent(contentLayout);
      
      addComponent(upperSection);
      addComponent(lowerSection);
    }
  6. Change the init method in your LayoutFrameworkUI class to match this:
    public class LayoutFrameworkUI extends UI {
    
      protected void init(VaadinRequest request) {
        setContent(new MainLayout());
      }
    
    }
  7. Compile, deploy, and run your application.

What just happened?

Let's get real; the application doesn't look very impressive so far:

We have created our very own layout class taking advantage of VerticalLayout. So our MainLayout is a VerticalLayout too, but now it contains a VerticalLayout for the header or upper section and a HorizontalLayout for the lower section which in turn contains a menu layout and a content layout, both using VerticalLayout. Layout, layout, layout, what a tongue-twister!

We have added some labels to see how our layout works.

Note

Note that when we add components into a HorizontalLayout they are placed from left to right.

Take a look at the components tree for MainLayout (we are showing only layout components):

主站蜘蛛池模板: 通渭县| 宜兴市| 甘南县| 淮北市| 牙克石市| 阳西县| 望城县| 磴口县| 克东县| 甘洛县| 宝山区| 姚安县| 松江区| 调兵山市| 安多县| 巴马| 河池市| 庄河市| 台中县| 新泰市| 彩票| 仁布县| 高碑店市| 旌德县| 梁平县| 开远市| 宽甸| 伊通| 横峰县| 德阳市| 和田市| 错那县| 江孜县| 宜良县| 元朗区| 江川县| 沂南县| 满洲里市| 岚皋县| 墨脱县| 荆门市|