我正在使用MessageDialog类中的打开对话框

boolean confirm = MessageDialog.open(MessageDialog.QUESTION_WITH_CANCEL,new Shell(),
                                        "Save Project" has been modified.Save changes?", SWT.NONE)


如果是,则返回true,否则返回false。它在结束时正在做一件事,当我取消并单击交叉行为时,它也返回false,并且像No option(我在false上写了一些步骤)一样接近。在cacel和十字按钮中,它应该只设置对话框,所以我在这里做错了。

最佳答案

为了区分来自QUESTION_WITH_CANCEL的3个响应,您将必须使用MessageDialog的构造函数形式,而不是静态方法之一:

MessageDialog dialog
    = new MessageDialog(shell, "title", null, "message", MessageDialog.QUESTION_WITH_CANCEL,
                        new String [] {IDialogConstants.YES_LABEL,
                                       IDialogConstants.NO_LABEL,
                                       IDialogConstants.CANCEL_LABEL}.
                        SWT.NONE);

int response = dialog.open();


response将是0(是),1(否)和2(取消)。

关于java - 区分消息对话框中否,关闭选项的行为,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20878487/

10-10 11:21