Java ICMP ping 機能を使用してゲートウェイに ping を実行しています。高速 ping を実行するために、ping 用のスレッドを作成する ExectorService を使用しています。アドレスが ping された (またはされない) 後、ping 後に Jprogressbar を更新したいと考えています。このコードは機能していますが、ジョブ (ping スレッド) が完了する前に Jprogressbar を更新します。仕事が終わったらjprogressbarを更新したい。
private int NUM_THREADS = Runtime.getRuntime().availableProcessors();
ExecutorService exec = Executors.newFixedThreadPool(NUM_THREADS);
public void run() {
int JProgressBarValue = 0;
for (;GateWayKey<=GateWayKeyStop;GateWayKey++){
ip="192.168."+GateWayKey+".1";
exec.submit((new PingTask(ip,GateWayKey,true,scanFrameRefrence,ttl)));
JProgressBarValue=(GateWayKey/GateWayKeyStop)*100;
scanFrameRefrence.progressBar.setValue(JProgressBarValue);
scanFrameRefrence.progressBar.repaint();
}}