![Vaadin 7 UI Design By Example:Beginner’s Guide](https://wfqqreader-1252317822.image.myqcloud.com/cover/861/36705861/b_36705861.jpg)
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:
![](https://epubservercos.yuewen.com/A092AF/19470463008249006/epubprivate/OEBPS/Images/2261_02_03.jpg?sign=1738842588-dBU8iWYq6Ye8YcFWC00kZad53g2uDz6m-0-3a5fc3a8bf691a0cce8895cf1ae4764a)
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.