如何使用带有QUESTION_WITH_CANCEL的MessageDialog.open()?

时间:2009-11-10 23:27:18

标签: eclipse eclipse-rcp

我想知道在使用MessageDialog.open(int kind, Shell parent, String title, String message,int style)打开时如何使用新的 QUESTION_WITH_CANCEL 对话框类型。

由于open方法返回 boolean ,现在我们有3种可能的状态来自取消

2 个答案:

答案 0 :(得分:14)

你不能使用静态方法MessageDialog.open(bunch of parameters),你必须创建对话框并自己调用非静态open()来检查它的返回值。

    MessageDialog dg = new MessageDialog(
            window.getShell(),
            "My title",
            null,
            "My question",
            MessageDialog.QUESTION_WITH_CANCEL, 
            new String[]{
                IDialogConstants.YES_LABEL, 
                IDialogConstants.NO_LABEL, 
                IDialogConstants.CANCEL_LABEL},
            0
            );
    switch(dg.open()) {
    case 0: 
        //yes
        System.out.println("yes");
        break;
    case 1:
        //no
        System.out.println("no");
        break;
    case 2:
        //cancel
        System.out.println("cancel");
        break;
    }

答案 1 :(得分:0)

查看JavaDoc,我相信取消会产生相同的效果: false

Returns:
    true if the user presses the OK or Yes button, false otherwise