如何使JDialog最顶级但不是模态?

我正在创建一个applet.该applet必须从数据库中获取一些大块数据并且操作很慢…这就是为什么我想创建一个“加载”JDialog,它将显示在applet的顶部,而applet正在从DB,但它不应该阻止用户输入applet.

怎么做?如果我创建一个“setAlwaysOnTop(true)”的JDialog,它将不会显示在顶部.如果我将它设置为模态,它将显示但不允许我的applet与DB通信.我甚至试图让“加载”窗口可以运行并从另一个线程运行它,没有运气.

如何为applet制作适当的,通用的“加载”JDialog,它不会是模态的,但会始终保持最佳状态?

最佳答案 调用swing / awt通常是一个非常(而且我非常非常非常)的坏主意

 来自非EDT线程.难怪,applet JFrame / JDialog在OSX和
Windows中的工作方式存在诸多问题. IMO如果您的applet直接使用JProgressBarr或applet UI中的某些内容,它将提供更好的用户体验.如果您必须弹出一个窗口,请使用带有AlwaysOnTop = true的JFrame.您获得奇怪行为的原因是您可能没有使用构造函数来获取父组件或只是传入一个空值.

点赞