Ok rozwijam sobie program do wyłączania kompa. Dodać chciałem timer, który pokazuje mi czas w minutach pozostały do wyłączenia komputera. I w przypadku jednorazowego naciśnięcia działa wszytko ok jednak gdy chcemy zmienić czas to nie działa. Z wątkami dopiero zaczynam i przypuszczam, że jest dalej gdzieś rozwiązanie takiego problemu jednak chciałbym spróbować to zrobić z aktualną wiedzą. Mianowicie zrobiłem klasę Timer uruchamiającą wątek który ma "ifa" z flagą jeżeli flaga się zmienia to wchodzimy do "ifa" i ustawiamy nowy czas wyłączenia komputera jeżeli nie to przechodzimy dalej do odliczania. Problem polega na tym, że o ile tworzenie obiektu wątku miałem w przycisku dla jednego przypadku to działało jednak gdy chciałem, żeby wątek był uniwersalny dla wszystkich przycisków i sprawdzał flagi i czas który pobierał do wyłączenia to się sypie teraz. Mianowice jak ustawie to tak:

zmienne wątku:

    private boolean flag =true; //ja true to wchodzi do ifa i zmeinia czas wylaczenia
    private int allMinute2 = 0; // czas aktualny w minutach
     private int endMinute = 0; // czas w ktorym wylaczy sie komputer

kod wątku:

   public void run() {
        Core core2 = new Core();
           // Calendar calendar = new GregorianCalendar();
            
        while (true) {
           Calendar calendar = new GregorianCalendar();
           //TODO: tu flage zrobic: ze jak sie jest true to ustawia godzine a jak nie to nie ustawia godziny i odlicza tylko
           if(flag){
            int hourOfDay = calendar.get(Calendar.HOUR_OF_DAY);
            int minute = calendar.get(Calendar.MINUTE);
           int allMinute = minute + 60 * hourOfDay;
            endMinute = allMinute + Integer.parseInt(new Core().getCzas());
            System.out.println("jestesmy w ifie");
           }
            System.out.println(endMinute);
            
            int hourOfDay2 = calendar.get(Calendar.HOUR_OF_DAY);
            int minute2 = calendar.get(Calendar.MINUTE);
            allMinute2 = minute2 + 60 * hourOfDay2;
            
            
          // w linijce poniżej wyskakuje NullPointException
         gui.getjLabel2().setText(Integer.toString(endMinute - allMinute2));
        
            
            gui.repaint();

            try {
                Thread.sleep(10000);
            } catch (Exception ek) {
            }

        }
    }

zmienn GUI:
jeżeli tą linijkę wkleję do kodu przycisku (kod poniżej) to dziła wtedy ale tylko dla tego jednego przycisku

Timer t = new Timer(this); 

kod GUI:

 t.setFlag(true);
        core.setCzas("30");
        core.abortOff();
        core.shutdown(30);
        t.setFlag(false);

Jak rozwiązać ten problem i dlaczego wyskakuje mi ten NullPointEx..
Słyszałem o czymś takim jak nasłuchiwanie wątków co pewnie rozwiązuje mój problem ale nadal nie wiem czemu mi ten błąd wyskakuje bo wydaje mi się, że powinno działać ;d