通过列表显示用户输入

时间:2018-05-16 14:33:51

标签: java list spring-mvc vaadin user-input

我正在使用Vaadin和Spring,当我点击添加电子邮件按钮以及电子邮件地址旁边的编辑和删除按钮时,我想显示电子邮件地址。你可以看到它的外观。我怎样才能使用List?

Here is the image

这是电子邮件布局的代码

 private void createEmailLayout()
    {

        emailLayout = new VerticalLayout();
        emailLayout.setMargin(false);
        emailLineLayout = new GridLayout(3, 1);
        emailLineLayout.setSpacing(true);

        Button emailButton = getButton("Add Email");
        emailButton.addClickListener(new Button.ClickListener()
        {

            private static final long serialVersionUID = -817258593606002344L;

            @Override
            public void buttonClick(ClickEvent event)
            {
                PersonWindow personDialog = new PersonWindow("Add Email", new DialogWindowListener<Person>()
                {
                    @Override
                    public void dialogConfirmed(Person email)
                    { 

                        person.setEmail(email.getEmail());           

                       refreshEmailList();

                    }

                    @Override
                    public void dialogClosed(boolean confirmed)
                    {
                    }
                });

                CcptUI.getCurrent().addWindow(personDialog);

            }
        });

        emailLayout.addComponents(emailLineLayout, emailButton);

    }

1 个答案:

答案 0 :(得分:0)

如果您想添加新的&#34; emailLineLayout&#34;每次单击“添加”按钮并确认操作时,都需要在 dialogConfirmed 方法中调用 addComponents

@Override
public void dialogConfirmed(Person email)
{ 
    GridLayout emailLineLayout = new GridLayout(3, 1);

    // adding components to the GridLayout
    ...

    person.setEmail(email.getEmail());
    emailLayout.addComponent(emailLineLayout);      
}

您也不应该添加&#34; emailLineLayout&#34;初始化&#34; emailLayout&#34;。

emailLayout.addComponent(emailButton);

PS:你已经创建了&#34; emailLineLayout&#34;只有一次。每次要添加新电子邮件时,都需要GridLayout的新实例。