我的观察者模式适用于我的 JDialog,当我的观察者发生变化时将调用 update(),正如我所期望的那样。我还在我的可观察对象中跟踪观察者计数(打开 JDialog 时为 1)。
我现在要尝试设置我的 JDialog 的模态,以便在对话框打开时使我的主窗口不可用。但是,如果我使用
dialog.setModalityType(ModalityType.APPLICATION_MODAL);
我无法再在我的可观察对象中看到我的 JDialog,并且不会调用 update()。看起来好像没有正确设置观察者。
任何人都可以阐明这一点吗?我该怎么做才能解决这个问题?
最佳答案
这个问题往往是由于没有考虑到程序流的顺序造成的。
确保您完全设置了观察者,包括添加所有监听器并启动任何和所有进程之前将对话框设置为可见。如果您在显示对话框后执行任何此类操作,它将被阻止,直到对话框返回。
要获得更具体的帮助,请考虑创建并发布 minimal example program .
关于java - 设置 JDialog block Observer 的模态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22211467/