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 ?
zamykanie programu po kilku sekundach
- Rejestracja: dni
- Ostatnio: dni
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
- Rejestracja: dni
- Ostatnio: dni
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.
- Rejestracja: dni
- Ostatnio: dni
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.
- Rejestracja: dni
- Ostatnio: dni
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);
}
- Rejestracja: dni
- Ostatnio: dni
Tylko robot zadziała wtedy tylko gdy okno jest aktywne. Jak ktoś da alt tab albo do ikony do już się nie zamknie.
- Rejestracja: dni
- Ostatnio: dni
True, ale emocje wywołane pytaniem "jaki program się tym razem zamknie" bezcenne. ;-)
- Rejestracja: dni
- Ostatnio: dni
Chyba nie ma siły by Java mogła zamknac coś. Hmm...sprawdze w domu jak to z tym jest.