zamykanie programu po kilku sekundach

0

Cześć, piszę aplikację desktopową w netbeans, składa się ona z kilku komponentów, jFrame, mainPanel, jTabbedPane, mam pytanie jak zrobić aby aplikacja po załadowaniu(czyli załadowaniu się wszystkich komponentów) zamknęła się po x sekundach ?

0

Thread.sleep(long millis) ?

0

Dokładnie - po załadowaniu wszystkiego uruchamiasz watek i od razu go usypiasz na tyle ile chcesz. Jak wątek się skończy dajesz dispose na komponentach i system.exit

0

Ale jak mam sprawdzić czy już wszystkie komponenty się zainicjowały ?
Mam funkcję initComponent() - w niej deklaracje komponentów.

Następnie w konstruktorze wywołuję tą funkcję i wywołuję Thread.sleep(3000) System.exit(0), i wygląda to tak że po uruchomieniu aplikacji w ogóle nie widzę komponentów program jest zamykany, a chodzi mi oto żeby komponenty przez te 3 sekundy były widziane.

0

po stworzeniu okna, zatrzymujesz wątek, zanim wyświetli te okno, a potem od razu wyłączasz program. Zrób tak, jak powiedział lipkerson, zrób to w osobnym wątku.

class watekWylaczajacy implements Runnable {
    Frame obiekt;
    
    watekWylaczajacy (Frame obiekt) {
        this.obiekt = obiekt;
    }

    public void run() {
        Thread.sleep(3000);
        obiekt.dispose();
        System.exit(0);
    }
}

a odpalasz to:

(...)
initComponents();
new Thread(new watekWylaczajacy(this)).start();
(...)

Pisałem na szybko, mogą być małe błedy.

0

Można też skorzystać z klasy Robot i na końcu konstruktora umieścić takie coś:

        try
        {
            Robot robot=new Robot();
            robot.delay(5000);
            robot.keyPress(KeyEvent.VK_ALT);
            robot.keyPress(KeyEvent.VK_F4);
            robot.keyRelease(KeyEvent.VK_F4);
            robot.keyRelease(KeyEvent.VK_ALT);
        }
        catch(Exception e)
        {
            System.out.println(e);
        }
0

Tylko robot zadziała wtedy tylko gdy okno jest aktywne. Jak ktoś da alt tab albo do ikony do już się nie zamknie.

0

True, ale emocje wywołane pytaniem "jaki program się tym razem zamknie" bezcenne. ;-)

0

Chyba nie ma siły by Java mogła zamknac coś. Hmm...sprawdze w domu jak to z tym jest.

0

Nie doceniasz Javy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1