Jak podczepić nową, drugą instancję programu pod kliknięcie "New" w GUI?

0

Witajcie :)

Generalnie szukałem troszkę po sieci, jednak częściej trafiam na dysputy dotyczące blokowania drugiej instancji programu, bądź podczepiania nowego okienka do kliknięcia. W obu przypadkach nie to chciałbym osiągnąć.

Co chciałbym osiągnąć zatem - stworzyłem sobie GUI, w którym jest ścieżka File-->New. Klikając "New" chciałbym, aby uruchomiła się druga instancja programu, po prostu mój program na nowo, w osobnym okienku. Niestety nie wiem w którym miejscu zacząć. Program to po prostu prościutki notatnik i logicznym wydało mi się, aby klikając New uruchamiała się nowa instancja programu.

Myślałem, że to rozwiązałoby sprawę:

public void actionPerformed(ActionEvent e) {
		String command = e.getActionCommand();
		(...)
		else if("New".equals(command)){
			SwingUtilities.invokeLater(new Runnable() {
				public void run() {
					new Aplikacja();
				}
			});

Jednak to by było za proste, zatem nie działa ;)

Co w Javie odpowiada za takie działania? Byłbym niezmiernie wdzięczny za wskazówkę, którą powinienem podążać.

1

Bardziej logiczniej po kliknięciu File->New byłoby zapisanie aktualnego pliku i otworzenie nowego w tym samym oknie.

0

Chcesz stworzyć aplikację wielookienkową czy odpalić nowego JVMa?

0

Być może, jednak z mojego prywatnego użytku wiem, iż czasem pracuję w paru notatnikach równocześnie. Powstaje jednak pytanie - co, jeśli nie chcę zapisywać tego pliku? ;)

Owszem, wszystko można rozwiązać - program może zapytać, czy chcę zapisać ten plik i zależnie robi to lub nie i czyści okno. Jednak chwilowo ograniczam się do swojego poziomu wiedzy i tak byłoby dla mnie najprościej i najszybciej :-( A z czasem i wiedzą wykonałbym to, o czym wspominasz :)

EDIT:

Wydaje mi się, że odpalić nowego JVM.

1

Do odpalenia nowego JVM możesz użyć Runtime.exec albo http://docs.oracle.com/javase/7/docs/api/java/lang/ProcessBuilder.html
Problem w tym, żeby wiedzieć z jakimi argumentami odpalić. Wydaje mi się, że najlepiej zrobić pliki .bat, .sh itd za pomocą których odpalasz JARa z programem. Wtedy w Runtime.exec czy ProcessBuilderze podajesz ścieżkę do skryptu, zamiast kombinować z przekazywaniem parametrów.

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