0

必要なパケット データを含む ArrayList を JTable に入力しています。私の JTable は、1 つずつではなく、すべてのパケットが受信された後に読み込まれます。Jnetpcap ライブラリを使用していますが、スレッドに問題があると思われます。

Capture Class に Swing Worker を実装しましたが、どこに doInBackground() を効果的に配置すればよいのか疑問に思っていました。並行性について調べたので、ここで問題だと思っています。構文がオフです。テーブル モデルが必要ですか? その場合、どこに実装すればよいですか?

編集: public class Capture extends SwingWorker {

//Variables

protected doInBackground() throws Exception {
 //Get Packets
 //Convert data to ArrayList 
pulish(list);
PCap.loop(10, jPacketHandler, null);
PCap.close();

したがって、基本的にループは 10 個のパケットを取得しますが、テーブルはパケットが PCap.close() で受信されると更新されるだけです。Swing が何らかの理由でブロックされていることはわかっていますが、どこにあるのかわかりません。

私の GUI クラスは、このメソッドを明示的に呼び出します (doInBackground)

4

0 に答える 0