zamykanie okna - z menu oknem dialogowym?

0

Witam
mam pewien problem:
chce w menu umiescic zamykanie okna ale razem z oknem dialogowym. Do tej pory mam zrobione okno dialogowe dla zamykania poprzez WindowEvent dla nacisniecia krzyzyka wyswietla mi okno z pytaniem o potwierdzenie. dla menu nie mam pojecia jak to zrobic ;]

	//zdarzenie Quit wyjscie z programu
		quit.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){
				System.exit(0);
						
			}
		});
	//obsluga okna dialogowego konczacego program -przesloniecie metody
	protected void processWindowEvent(WindowEvent e){
		if(e.getID()==WindowEvent.WINDOW_CLOSING){
			Object options[] ={"Tak","Nie"};
			int answer = JOptionPane.showOptionDialog(null, "Zakończyć działanie programu ChannelLab?", "Koniec?", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, options, options[1]);
			if(answer==0){
				super.processWindowEvent(e);
				System.exit(0);
			}
		}//fi
	}//process

Jakies pomysly jak zmienic w miejscu System.exit(0); to by pojawialo sie okno takie jak przy WindowEvencie?

czolem
Oberon

0

dispose()?

pozdrawiam

0
eximius napisał(a)

dispose()?

pozdrawiam

Hmm dispose chyba niebardzo ...

chodziło mi o to zeby zrobic zabezpieczenie przed nieumyslnym wylączeniem programu poprzez okno dialogowe. Tak jak to zostało zrobione w przypadku nacisniecia X zamykajacego okno (nalezy przeslonic - tak jak w kodzie processWindowEvent).

Natomiast w menu programu zrobilem pole quit obslugiwane zdarzenie ActionListnerem. Chcialbym (o ile sie da) wykorzystac tamtą funkcje.... Myslalem o wygenerowaniu(o ile sie da bo z java dopiero praktykuje ) poprzez ActionEventa nowego WindowEventa.WINDOW_CLOSING tak zeby tamta funkcja to przechwyciła i wyswietliła okno dialogowe z potwierdzeniem wyjscia z programu... ale nie wyszlo mi to...

czy da rade to zrobic czy trzeba pisac nowÄ… reakcje na zdarzenie wyswietlajaca nowe okno dialogowe?

Bo zrobilem tak ze z w actionPerformed umiescilem podobne cialo jak w processWindowEvent, dziala tak jak mialo ... no ale po co pisac 2x nie mozna jakos obsluzyc to metoda processWindowEvent poprzez wygenerowanie czegos w actionPerformed przycisku quit?

dzx

0

a po co sie tak bawic? nie lepiej napisac funkcje close(), wrzucic do niej odpowiednie akcje i ta funkcje wywolywac z obu listenerow??

pozdrawiam

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