我有一个独立于整个项目其余部分的小对话框。有几个线程可以调用此对话框。
问题是模态JDialog,它显示当前任务的进度。我的对话框将在进度对话框后面打开。没有可能得到这个对话框。
是否可以获取当前活动的对话框,以便我可以将它们用作新对话框的父对象?
答案 0 :(得分:0)
几点:
您声明有几个线程可能会调用此对话框,而对于Swing应用程序,您应该确保Event Dispatch Thread是启动此对话框的唯一线程。
如果您遵循此约束,则您更有可能对已经显示的进度对话框进行引用,因此可以将其用作对话框父对象。
听起来您可能需要重新架构您的应用程序。通常,您可以调用SwingWorker来执行后台任务,该任务会将进度“发布”回Swing线程,然后更新进度对话框。
另一个提示:您可以使用toFront()
上的Window
方法将对话框置于屏幕的正面,虽然这似乎不是您问题的症结所在。