如何实现确认对话框

How to implement ConfirmDialog

ConfirmDialog 的简单示例表明:

ConfirmDialog dialog = new ConfirmDialog("Meeting starting",
        "Your next meeting starts in 5 minutes", "OK", this::onOK);
Button button = new Button("Open dialog");
button.addClickListener(event -> dialog.open());
add(button, dialog);

这假定了一些我显然不具备的知识。即,如何实现“this::onOK”。谁能给我一个快速示例,说明如何创建此侦听器,以便当我单击“确定”按钮时,对话框就关闭?

this::onOK 是一个以 ConfirmEvent 作为参数的方法引用 https://docs.oracle.com/javase/tutorial/java/javaOO/methodreferences.html

实现方法如下所示:

private void onOK(ConfirmDialog.ConfirmEvent confirmEvent) {
}

您也可以将代码直接作为 lambda 表达式传递:

ConfirmDialog dialog = new ConfirmDialog("Meeting starting",
    "Your next meeting starts in 5 minutes", "OK", e -> { // your code });

https://www.w3schools.com/java/java_lambda.asp

这应该会在单击按钮时关闭对话框。

        ConfirmDialog dialog = new ConfirmDialog("Meeting starting",
                "Your next meeting starts in 5 minutes", "OK", e -> e.getSource().close());
        Button button = new Button("Open dialog");
        button.addClickListener(event -> dialog.open());
        add(button, dialog);