Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > pl.comp.lang.java > #10743
| From | Borneq <borneq@antyspam.hidden.pl> |
|---|---|
| Newsgroups | pl.comp.lang.java |
| Subject | Re: Jak wywoływać programy w Javie ? |
| Date | 2015-07-13 07:58 +0200 |
| Organization | ATMAN - ATM S.A. |
| Message-ID | <mnvk1v$mcq$1@node1.news.atman.pl> (permalink) |
| References | <mnus1o$r32$1@node2.news.atman.pl> <slrnmq62oc.24j.nospam@nc10.lan> |
W dniu 2015-07-13 o 02:49, Pit pisze:
> Jeśli nie zamyka się po zakończeniu programu, to znaczy, że... program się
> nie kończy, a jedynie zamykasz okienko programu (maszyna wirtualna chodzi
> dalej). Na pewno prawidłowo obsługujesz kliknięcie w "krzyżyk" głównego
> okienka programu? Sprawdź w procesach :D
Masz rację, nie kończy się, w Eclipse zostaje czerwony kwadrat. A
poprawiałem wyjątek na zakończenie bo pojawiał się w display.dispose()
gdy bl włączony timer, teraz timer przez zwolnieniem timer stopuję:
display.timerExec(-1, timer);
Robię w SWT według książki Adama Bochenka "Eclipse. Biblioteka SWT".
public class MidPlayerApp {
public static void main(String[] args) {
Display display = new Display();
new MainWindow();
display.dispose();
}
}
Więcej robię w kreatorze MainWindow, aby nie robić wszystkiego w Main.
To też ma wadę bo ten kreator ni kończy się przez całe trwanie programu.
public MainWindow() {
display = Display.getCurrent();
shell = new Shell(display);
init(); //creates components
shell.open();
startEventLoop();
commandsPlayback.stop();
display.timerExec(-1, timer); //stop timer before display.dispose();
to avoid error
}
private void startEventLoop() {
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) display.sleep();
}
}
Już wiem! Obsługuję midi i przed końcem wołam co prawda sequencer.stop()
aby nie została mi muzyka ale nie zamykałem go.
Teraz po zamknięciu program się zamyka. Dzięki konsoli zobaczyłem że coś
nie gra, bło mnóstwo otwartych javaw. Co ciekawe Eclipse było otwarte
przez Eclipse.exe a nie przez javaw (może dlatego "aż" 300 kilo)
Już po zamknięciu konsola się zamyka.
Ale nie wiem, dlaczego w ogóle się otwiera, nie tylko dla java ale i dla
javaw, mimo że wyrzuciłem dwa wywołania println i nic nie wypisuje na
konsolę.
Back to pl.comp.lang.java | Previous | Next — Previous in thread | Next in thread | Find similar
Jak wywoływać programy w Javie ? Borneq <borneq@antyspam.hidden.pl> - 2015-07-13 01:08 +0200
Re: Jak wywoływać programy w Javie ? Borneq <borneq@antyspam.hidden.pl> - 2015-07-13 01:47 +0200
Re: Jak wywoływać programy w Javie ? Borneq <borneq@antyspam.hidden.pl> - 2015-07-13 02:28 +0200
Re: Jak wywoływać programy w Javie ? Pit <nospam@sdf.lonestar.org> - 2015-07-13 00:53 +0000
Re: Jak wywoływać programy w Javie ? Pit <nospam@sdf.lonestar.org> - 2015-07-13 00:49 +0000
Re: Jak wywoływać programy w Javie ? Borneq <borneq@antyspam.hidden.pl> - 2015-07-13 07:58 +0200
Re: Jak wywoływać programy w Javie ? Borneq <borneq@antyspam.hidden.pl> - 2015-07-13 08:05 +0200
Re: Jak wywoływać programy w Javie ? Pit <nospam@sdf.lonestar.org> - 2015-07-13 00:57 +0000
Re: Jak wywoływać programy w Javie ? Borneq <borneq@antyspam.hidden.pl> - 2015-07-13 07:39 +0200
Re: Jak wywoływać programy w Javie ? arivald <arivald@nowhere.interia.pl> - 2015-07-13 08:11 +0200
csiph-web