Java 模式对话框阻止正确的光标状态

Java 模式对话框阻止正确的光标状态,java,swing,cursor,modal-dialog,jdialog,Java,Swing,Cursor,Modal Dialog,Jdialog,我无法同时显示模式对话框和忙碌光标 我显示一个模态对话框,并将主框架的光标设置为“等待状态”。一切都很好,只是如果鼠标退出主框架并再次进入,它将永远不会回到“等待状态”。如果对话框不是模态的,则不会发生此错误(?) 测试程序: public static void main(String[] args) { final JFrame frame = new JFrame(); frame.setSize(new Dimension(500, 500));

我无法同时显示模式对话框和忙碌光标

我显示一个模态对话框,并将主框架的光标设置为“等待状态”。一切都很好,只是如果鼠标退出主框架并再次进入,它将永远不会回到“等待状态”。如果对话框不是模态的,则不会发生此错误(?)

测试程序:

    public static void main(String[] args) {
        final JFrame frame = new JFrame();
        frame.setSize(new Dimension(500, 500));

        final JDialog dialog = new JDialog(frame);
        dialog.setModal(true);

        frame.add(new JButton(new AbstractAction("Dialog") {
            @Override
            public void actionPerformed(ActionEvent e) {
                frame.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
                dialog.setVisible(true);
            }
        }));
        frame.setVisible(true);
    }
frame.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_Cursor))

  • 光标
    可以更改(或更改可见)已获得
    焦点的窗口
    ,这是模态窗口或
    模态类型
    的基本属性
它永远不会回到“等待状态”。如果对话框不是模态的,则不会发生此错误(?)

  • 关闭子
    JDialog
    后,可以将
    JFrame
    光标更改为
    WAIT\u光标

  • 通过删除
    setModal()
    或将
    ModalityType
    s更改为
    ModalityType.MODELESS


好的,谢谢,我不知道!问题是我想在模式对话框中添加一个进度条,让光标在整个应用程序中等待,直到对话框消失。我该怎么点呢?@paranoia25(移动逻辑)要改变弹出窗口的光标(在你的例子中是JDialog),让它JFrame…-),在这个论坛上搜索SwingWorker和JProgressBar。。。《每日邮报》回答了类似的问题