有 Java 编程相关的问题?

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

java自动关闭Jdialog而无需用户操作

我正在创建一个应用程序,在其中测试一定数量的接口功能,当出现错误时,我希望显示一条错误消息
然后应用程序应该截取整个屏幕的屏幕截图,最后错误消息在没有用户帮助的情况下关闭

为此,我尝试使用JDialog,如下所示:

    JOptionPane pane = new JOptionPane("Error message", JOptionPane.INFORMATION_MESSAGE);
    JDialog dialog = pane.createDialog("Error");
    dialog.addWindowListener(null);
    dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
    dialog.setVisible(true);
    Application.takeScreenshot();
    dialog.setVisible(false);

我想知道是否有一个具体的方法来关闭它。我查了一下文件,似乎找不到。我试图找到一个相关的问题,但没有找到一个解决我的问题

我想知道是否有办法获取窗口句柄,然后使用该句柄将其关闭,或者简单地向窗口发送“close”或“Press_ok”事件

编辑:在我看来,当messagebox显示时,代码似乎完全停止运行,好像有一个线程。睡眠(),直到用户手动关闭窗口

如果可能的话,一个代码示例会很有帮助

谢谢


共 (1) 个答案

  1. # 1 楼答案

    我设法把它修好了。默认情况下,JDialog是模态的,这意味着它会中断其他所有操作,直到用户关闭它。为了解决这个问题,我使用了以下方法:

    dialog.setModalityType(Dialog.ModalityType.MODELESS);
    

    当此选项处于活动状态时,将显示一个简单的。setVisible(假);够了。 无论如何,谢谢你的帮助,很抱歉提出了一个不必要的问题,但我已经问了好几个小时,直到找到它。希望它能帮助别人