4

アプレットを作成しています。そのアプレットはデータベースからデータの大きなチャンクを取得する必要があり、その操作は遅いです...そのため、アプレットがからデータをロードしている間、アプレットの上に表示される「ロード」JDialogを作成したいと思います。 DB、しかしそれはアプレットへのユーザー入力をブロックするべきではありません。
どうやってするの?「setAlwaysOnTop(true)」のJDialogを作成すると、上部に表示されません。モーダルに設定すると表示されますが、アプレットがDBと通信できなくなります。その「読み込み中」ウィンドウを実行可能にして、別のスレッドから実行しようとさえしましたが、運が悪かったです。

モーダルではないが常にトップに留まるアプレット用の適切で普遍的な「ロード」JDialogを作成するにはどうすればよいですか?

4

1 に答える 1

2

EDT 以外のスレッドから swing/awt を呼び出すのは一般的に非常に (つまり非常に) 悪い考えです。アプレット JFrame/JDialog が OSX および Windows でどのように機能するかについては、多くの問題があることに注意してください。IMO アプレットが使用されたばかりJProgressBarrか、アプレット UI で直接何かが使用された場合、ユーザー エクスペリエンスが大幅に向上します。どうしてもウィンドウをポップアップする必要がある場合は、JFrame と を使用してAlwaysOnTop=trueください。奇妙な動作が発生する理由は、おそらく親コンポーネントを受け取るか、単にnull値を渡すコンストラクターを使用していないためです。

于 2012-06-25T15:17:52.310 に答える