Package epidemic.gui

Class SimulationFrame

All Implemented Interfaces:
ImageObserver, MenuContainer, Serializable, Accessible, RootPaneContainer, WindowConstants

public class SimulationFrame extends JFrame
Główne okno aplikacji oparte na bibliotece Swing. Pełni rolę kontrolera (Controller) oraz głównego kontenera widoku (View). Odpowiada za cykl życia głównego timera symulacji, synchronizację stanu silnika z interfejsem graficznym oraz bezpieczne zamykanie i eksportowanie wyników.
See Also:
  • Field Details

    • engine

      private final SimulationEngine engine
    • mapPanel

      private final MapPanel mapPanel
    • timer

      private final Timer timer
    • healthyLabel

      private final JLabel healthyLabel
    • sickLabel

      private final JLabel sickLabel
    • recoveredLabel

      private final JLabel recoveredLabel
    • totalLabel

      private final JLabel totalLabel
    • epochLabel

      private final JLabel epochLabel
  • Constructor Details

    • SimulationFrame

      public SimulationFrame(SimulationEngine engine, WorldMap world)
      Buduje główny interfejs graficzny symulacji. Inicjalizuje panele statystyk, kontrolki sterujące oraz płótno mapy. Konfiguruje akcje przycisków oraz zachowanie aplikacji przy zamykaniu okna.
      Parameters:
      engine - Główny silnik symulacji zarządzający logiką domenową.
      world - Stan mapy świata wykorzystywany do renderowania wizualizacji.
  • Method Details

    • step

      private void step()
      Centralny punkt synchronizacji między warstwą logiki a warstwą widoku. Wywoływany cyklicznie przez Timer w wątku Event Dispatch Thread (EDT). Wymusza przeliczenie kolejnej epoki, aktualizuje etykiety telemetryczne i zleca przerysowanie płótna. Automatycznie zatrzymuje symulację w przypadku wygaśnięcia epidemii.
    • handleSimulationEnd

      private void handleSimulationEnd(String reason)
      Obsługuje proces zakończenia symulacji, wyświetlając podsumowanie i oferując użytkownikowi możliwość wygenerowania wykresów analitycznych. Zapewnia bezpieczny fallback ścieżki eksportu w przypadku braku uprawnień administratora.
      Parameters:
      reason - Komunikat wyjaśniający powód przerwania symulacji.
    • start

      public void start()
      Upowszechnia okno na ekranie i uruchamia główną pętlę zdarzeń symulacji.