4

我正在创建一个小程序。该小程序必须从数据库中获取一些大块数据并且该操作很慢......这就是为什么我想创建一个“加载”JDialog,当小程序从小程序加载数据时,它将显示在小程序的顶部DB,但它不应该阻止用户对小程序的输入。
怎么做?如果我创建一个“setAlwaysOnTop(true)”的 JDialog,它将不会显示在顶部。如果我将它设置为模式,它将显示,但它不允许我的小程序与 DB 通信。我什至试图使那个“加载”窗口可运行并从另一个线程运行它,但不走运。

如何为小程序制作适当的、通用的“加载”JDialog,它不会是模态的,但会始终保持在最前面?

4

1 回答 1

2

从非 EDT 线程调用 swing/awt 通常是一个非常(我的意思是非常非常)坏主意。请注意,小程序 JFrame/JDialog 在 OSX 和 Windows 中的工作方式存在许多问题。JProgressBarr如果您的小程序刚刚使用或直接在您的小程序 UI 中使用,IMO 将提供更好的用户体验。如果您绝对必须弹出一个窗口,请使用 JFrame 和AlwaysOnTop=true. 你得到奇怪行为的原因是你可能没有使用带有父组件的构造函数或只是传入一个null值。

于 2012-06-25T15:17:52.310 回答