【问题标题】:Setting Modality of JDialog blocks Observer设置 JDialog 块观察者的模态
【发布时间】:2014-03-05 23:15:12
【问题描述】:

我的观察者模式在我的 JDialog 上工作得很好,当我的观察者改变时调用 update(),正如我所期望的那样。我还在跟踪我的 observable 中的观察者计数(打开 JDialog 时为 1)。

我现在尝试设置我的 JDialog 的模态,以便在对话框打开时使我的主窗口不可用。但是,如果我使用

dialog.setModalityType(ModalityType.APPLICATION_MODAL);

在我的 observable 对象中不再看到我的 JDialog,并且 update() 没有被调用。看起来好像它没有正确设置观察者。

任何人都可以对此有所了解吗?我能做些什么来解决这个问题?

【问题讨论】:

    标签: java swing modal-dialog observer-pattern jdialog


    【解决方案1】:

    这个问题通常是由于没有考虑程序流程的顺序造成的。

    确保您完全设置了您的观察者,包括添加所有侦听器和启动所有进程设置对话框可见之前。如果您显示对话框后执行任何此操作,它将被阻止,直到对话框返回。

    如需更具体的帮助,请考虑创建并发布minimal example program

    【讨论】:

    • 非常感谢,不敢相信我没想到!
    • @LexWebb:所有的 Swing 程序员迟早都会受此影响。现在,当此处出现类似问题时,您可以传递此信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-24
    • 1970-01-01
    • 2011-09-25
    • 2016-02-20
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多