有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java SWT MessageBox关闭按钮已禁用

我将JavaSWT用于应用程序UI。当我使用SWTMessageBox向用户提问时,我使用:

MessageBox messageBox = new MessageBox(new Shell(Display.getCurrent()), SWT.YES | SWT.NO | SWT.ICON_QUESTION);

但当对话框打开时,关闭(红色X按钮)被禁用。要使其启用,我可以做些什么


共 (1) 个答案

  1. # 1 楼答案

    我为你感到抱歉,但这是不可能的。通过查看Java SWT的源代码,我调查了:
    src/org/eclipse/swt/widgets/MessageBox。java第206行:

    OS.MessageBox (hwndOwner, buffer1, buffer2, bits);
    

    使用JNI运行本机C代码的: src/os。c第8939行:

    rc = (jint)MessageBoxA((HWND)arg0, (LPSTR)lparg1, (LPSTR)lparg2, arg3);
    

    这就是用JavaSWT封装的MessageBox的真正Win32 API代码。并且不允许启用[X]按钮。正如您在这里看到的: Enable Close button in Win 32 Message Box
    仅当添加SWT时才启用该选项。取消按钮,则[X]的操作方式相同