Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > pl.comp.lang.java > #10743

Re: Jak wywoływać programy w Javie ?

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>

Show all headers | View raw


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 | NextPrevious in thread | Next in thread | Find similar


Thread

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