我正在使用Vaadin和Spring,当我点击添加电子邮件按钮以及电子邮件地址旁边的编辑和删除按钮时,我想显示电子邮件地址。你可以看到它的外观。我怎样才能使用List?
这是电子邮件布局的代码
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);
}
答案 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的新实例。