0

私は、netbeans でサーバー クライアント アプリケーション プロジェクトを作成しています。netbeans guiビルダーを使用して、JFrameにいくつかのJpanelとその他のもの(ボタン、テキストフィールド、テキストエリア、メニュー)を作成しました。新しいサーバー ボタンを押すと、JFrame 全体とそのすべてのコンポーネントがフリーズしますが、サーバー クライアント部分はバックグラウンドで動作しています。スレッドか何かに問題があると思いますが、何をすべきかよくわかりません。

4

1 に答える 1

6

問題は、サーバー クライアント コードが実際にはバックグラウンドで動作しておらず、代わりに Swing イベント スレッドで動作している可能性があります。これは、 SwingUtilitiesメソッドでテストできます。SwingUtilities.isEventDispatchThread()

また:

  • バックグラウンド作業を行うために SwingWorker を使用していますか?
  • join()バックグラウンド スレッドで呼び出しを行っていますか?
  • SwingWorkersget()メソッドを待っていますか?

コードの詳細は、より具体的なアドバイスを提供するのに役立ちます。何をすべきかを学ぶには、レッスン: Swing での並行性を読んでください。

于 2012-09-29T15:40:33.497 に答える