From a8853805472a1c365f6c8a3e0589879f1e4598f7 Mon Sep 17 00:00:00 2001 From: tdomanski Date: Sun, 2 May 2021 13:50:20 +0200 Subject: [PATCH] =?UTF-8?q?Uwzgl=C4=99dnienie=20wyj=C4=85tk=C3=B3w=20przy?= =?UTF-8?q?=20w=C5=82=C4=85czaniu/wy=C5=82=C4=85czaniu=20symulacji?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/interfejs/ObszarSymulacji.java | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/src/interfejs/ObszarSymulacji.java b/src/interfejs/ObszarSymulacji.java index 1aa4edc..8d59f6a 100644 --- a/src/interfejs/ObszarSymulacji.java +++ b/src/interfejs/ObszarSymulacji.java @@ -24,6 +24,7 @@ import javax.swing.BorderFactory; import javax.swing.JLabel; +import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.Popup; import javax.swing.PopupFactory; @@ -53,7 +54,7 @@ public class ObszarSymulacji extends JPanel implements MouseListener, MouseMotio private String aktualnyContent;//informacja, czy aktualnie wyświetlane jest pole wektorowe, czy trajektorie cząstek private ExecutorService exec; private final int ARR_SIZE = 3; - + private boolean onSymulacja = false; public ObszarSymulacji() { this.setBorder(BorderFactory.createCompoundBorder(new EmptyBorder(10, 10, 10, 10), new EtchedBorder(Color.black,Color.black))); this.setBackground(Color.white); @@ -216,21 +217,32 @@ public void dodajCzastkeProbna(CzastkaProbna cp) { public void uruchomExecutor() { - exec = Executors.newFixedThreadPool(symulacje.size()); - for (SymulacjaCzastki sym : symulacje) { - sym.setOnSymulacja(true); - exec.execute(sym); + if(symulacje.size()>0) + { + exec = Executors.newFixedThreadPool(symulacje.size()); + for (SymulacjaCzastki sym : symulacje) { + sym.setOnSymulacja(true); + exec.execute(sym); + } + onSymulacja = true; + } + else + { + JOptionPane.showMessageDialog (null, "Symulacja nie została uruchomiona - brak dodanych cząstek!"); } - } public void wylaczExecutor() { - exec.shutdown(); - for (SymulacjaCzastki sym : symulacje) { - sym.setOnSymulacja(false); + if(onSymulacja) + { + exec.shutdown(); + for (SymulacjaCzastki sym : symulacje) { + sym.setOnSymulacja(false); + } + onSymulacja=false; } }