java - 设置 JDialog block Observer 的模态

标签 java swing modal-dialog observer-pattern jdialog

我的观察者模式适用于我的 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/

相关文章:

java - 向类添加静态方法并委托(delegate)给现有方法

java - 如何从世界风测量工具中删除选项卡式平移 View

java - JFrame 和 JPanel 居中

ruby-on-rails - 向 Rails 中的 link_to 方法添加 onclick 选项?

javascript - 有没有办法做一个可访问的模式?

Java:循环字符串长度时间复杂度

java - 无法获取使用 thymeleaf 提交的值

java - 如何在JPanel中设置左对齐JLabel

java - 如何将 Java 中 main 之外的类中的文本附加到文本字段?

html - 如何停止加载时播放 Flex 视频