【发布时间】:2012-05-18 04:16:17
【问题描述】:
我对这个问题感觉有点不好,因为我认为这可能不是 应该使用 JDialog 的方式,但无论如何:
我有一个非常简单的 JDialog,它只包含一个标签,我想显示它 在应用程序运行的任务只运行了几次的情况下 主要摆动线程上的秒数。对话框必须是模型以确保 短阻塞任务执行时,用户无法单击主 GUI 上的任何内容 执行。任务完成后,模态对话框应该在没有的情况下被处理掉 任何用户交互......这似乎不适用于模态对话框,因为 一旦调用了 setVisible(true) 方法,执行似乎停止了,我不能 弄清楚如何在没有用户交互的情况下从所有者方面关闭它...
非常感谢有关如何实施此类阻止的帮助或建议 以不同的方式对话。
【问题讨论】:
-
你为什么不使用 SwingX'
BusyLabel或BusyPainter来代替?您可以将带有painter 的标签或组件放在类窗格上,并在操作完成后将其移除。或者更好的是,使用提供setWaitPaneVisible(...)方法的JXFrame。 -
如果您能以某种方式将此任务带到您的
JDialog相关类并在将其设置为visible(true)后从他们那里调用它,可能它可以工作,尽管很难说没有任何发布代码部分:( -
感谢您提示我使用 SwingX - 我目前正在查看 BusyLabel API,看起来我可以将它用于我的目的 - 很抱歉没有发布示例代码 - 我希望已经描述了一般问题足以说明我试图做什么
标签: java swing modal-dialog jdialog