【发布时间】:2012-08-15 22:53:49
【问题描述】:
我正在开发一个程序,该程序在每次通过时都会遍历一个对象列表。当一个对象的“时间”(即通过次数)到时,它会启动一个 JDialog 来请求它的下一个任务。问题是如何处理多个对象一次性发出这个请求。
如果我制作 JDialog 模态,每个对象依次发出请求,这就是我想要的;但主程序窗口不可用,我不想要。
如果 JDialog 不是模态的,则会出现多个实例,每次传递一个,这是我不想要的;或者,如果我将其设置为单例,则只会出现一个实例,但只有列表中用于发出请求的最后一个对象才能使用它。
有没有一种方法可以弹出对话框,让用户可以使用其他窗口,并让其他对象等待轮到使用该对话框?
【问题讨论】:
-
看起来您需要某种队列。如果您发布一些代码可能会有所帮助。
-
Aaron,这些对象已经在一个队列中了。我只是不知道如何让他们等到 JDialog 关闭/隐藏后再推进队列。
-
使用如前所述的队列和 WindowListener。
-
通过将原始窗口的模态排除类型设置为“应用程序”并在打开其他“完全”模态对话框之前切换回“无排除”来解决。
-
@flibbertygibbet:如果解决了,您可以将其发布为您自己问题的答案。
标签: java swing user-interface jdialog modality