我确实下载了ConfirmDialog插件。现在,我正在尝试在我的自定义组件中创建一个确认,但我想这不适用于这个 ui。
public class Customer extends CustomComponent implements Button.ClickListener{
private Button btnSave;
private VerticalLayout vLayout;
public Customer(){
vLayout = new VerticalLayout();
setCompositionRoot(vLayout);
btnSave = new Button("Save");
btnSave.addClickListener(this);
vLayout.addComponent(btnSave);
}
@Override
public void buttonClick(ClickEvent event) {
if(event.getButton() == btnSave){
save();
}
}
/** save informations if ConfirmDialog return true */
private void save(){
ConfirmDialog.show(this, "Please Confirm:", "Are you really sure?",
"I am", "Not quite", new ConfirmDialog.Listener() {
public void onClose(ConfirmDialog dialog) {
if (dialog.isConfirmed()) {
System.out.println(dialog.isConfirmed());
} else {
System.out.println(dialog.isConfirmed()); }
}
});
}
}
当我创建确认对话框并将我的自定义组件传递为 Ui(this) 不接受时。我尝试通过空,但不起作用。
问题就解决了。我确实使用了UI.getCurrent()并且工作。
/** save informations if ConfirmDialog return true */
private void save(){
ConfirmDialog.show(UI.getCurrent(), "Please Confirm:", "Are you really sure?",
"I am", "Not quite", new ConfirmDialog.Listener() {
public void onClose(ConfirmDialog dialog) {
if (dialog.isConfirmed()) {
System.out.println(dialog.isConfirmed());
} else {
System.out.println(dialog.isConfirmed()); }
}
});
}