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

Time for action – adding some infrastructure

Edit the init method of your TimeItUI class to match the following:

@Override
protected void init(VaadinRequest request) {
  initCombo();
  initButton();
  initLayout();
}

What just happened?

Here we are breaking up the functionality to initialize our UI components in a more suitable way by implementing smaller methods. Now that we have the required infrastructure, we can start adding input components.

Comboboxes

A combobox is an input component that allows users to select an option from a drop-down list. It looks like the following screenshot:

You must be thinking "yeah right, but how do you put those options in there?" This is easy:

ComboBox c = new ComboBox("Select an option");
c.addItem("Option one");
c.addItem("Option two");
c.addItem("Option three");

If you have the options in a Java Collection class, you can pass the Collection instance to the constructor like this:

ArrayList<String> options = new ArrayList<>();
options.add("Option 1");
options.add("Option 2");
options.add("Option 3");
ComboBox c = new ComboBox("Select an option", options);

The method addItem accepts an Object, so we can pass instances of any class. For example, if we had a User class we could have done this:

User user1 = new User("Jurka", "Rahikkala");
User user2 = new User("Joonas", "Lehtinen");

ComboBox c = new ComboBox("Select a user");
c.addItem(user1);
c.addItem(user2);

Now, how will the ComboBox component know what to print as option captions? First, let's go back to our "Time It" application.

主站蜘蛛池模板: 政和县| 天津市| 赣榆县| 呼伦贝尔市| 本溪市| 毕节市| 始兴县| 呼和浩特市| 吴川市| 武定县| 永康市| 泽库县| 四会市| 靖州| 阿勒泰市| 常山县| 左权县| 滨州市| 翁牛特旗| 新巴尔虎右旗| 红原县| 云霄县| 达孜县| 晋中市| 芷江| 大城县| 阿巴嘎旗| 阿鲁科尔沁旗| 集安市| 黄陵县| 甘德县| 梅州市| 永春县| 淮北市| 卢龙县| 湾仔区| 茶陵县| 登封市| 临猗县| 昭觉县| 吴川市|