|
25 | 25 | import java.net.URISyntaxException; |
26 | 26 | import java.net.URL; |
27 | 27 | import java.util.Locale; |
| 28 | +import java.util.concurrent.Executors; |
| 29 | +import java.util.concurrent.ScheduledExecutorService; |
| 30 | +import java.util.concurrent.TimeUnit; |
28 | 31 |
|
29 | 32 | public class MainWindow extends JFrame { |
30 | 33 |
|
31 | 34 | /** |
32 | 35 | * |
33 | 36 | */ |
34 | 37 | private static final long serialVersionUID = 1L; |
35 | | - |
36 | 38 | public static DefaultTableModel dtm; |
37 | | - |
38 | 39 | private QuboInstance quboInstance; |
39 | | - |
40 | 40 | private Thread instanceThread; |
41 | 41 | private InstanceRunnable instanceRunnable; |
42 | | - |
43 | | - private Thread progressBarThread; |
44 | | - private ProgressBarRunnable progressBarRunnable; |
45 | 42 | private Point initialClick; |
46 | | - |
47 | 43 | private final JFrame meMyselfAndI; |
| 44 | + private ScheduledExecutorService schedulerProgressBarService; |
48 | 45 |
|
49 | 46 | public MainWindow() { |
50 | 47 | setUndecorated(true); |
@@ -141,8 +138,7 @@ public void mouseDragged(MouseEvent e) { |
141 | 138 | public void idle() { |
142 | 139 | instanceRunnable.stop(); |
143 | 140 | instanceThread = null; |
144 | | - progressBarRunnable.stop(); |
145 | | - progressBarThread = null; |
| 141 | + schedulerProgressBarService.shutdown(); |
146 | 142 | quboInstance = null; |
147 | 143 | progressBar1.setString("100%"); |
148 | 144 | progressBar1.setValue(100); |
@@ -171,11 +167,11 @@ private void running(InputData i) { |
171 | 167 | instanceRunnable = new InstanceRunnable(quboInstance, this); |
172 | 168 | instanceThread = new Thread(instanceRunnable); |
173 | 169 | instanceThread.start(); |
174 | | - |
175 | | - progressBarRunnable = new ProgressBarRunnable(progressBar1, quboInstance); |
176 | | - progressBarThread = new Thread(progressBarRunnable); |
177 | | - progressBarThread.start(); |
178 | | - |
| 170 | + schedulerProgressBarService = Executors.newScheduledThreadPool(1); |
| 171 | + schedulerProgressBarService.scheduleAtFixedRate(new ProgressBarRunnable(progressBar1, quboInstance), |
| 172 | + 0, |
| 173 | + TimeUnit.SECONDS.toSeconds(1), |
| 174 | + TimeUnit.SECONDS); |
179 | 175 | ipRangeTextField.setEnabled(false); |
180 | 176 | portRangeTextField.setEnabled(false); |
181 | 177 | threadTextField.setEnabled(false); |
|
0 commit comments