设置JDialog的模态块Observer

时间:2014-03-05 23:15:12

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

我的观察者模式对我的JDialog工作正常,当我的观察者改变时调用update(),正如我所期望的那样。我也在跟踪我的观察者中的观察者数量(在JDialog打开的情况下是1)。

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

dialog.setModalityType(ModalityType.APPLICATION_MODAL);

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

任何人都可以对此有所了解吗?我该怎么做才能解决这个问题?

1 个答案:

答案 0 :(得分:4)

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

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

有关更具体的帮助,请考虑创建和发布minimal example program