Witajcie

Chciałbym zrobić pewną rzecz a mianowicie mam odpalone okno graficzne. Po kliknięciu w button odpalam inne okno a to "główne" robię niewidoczne. Przy zakończeniu pracy w tym nowym po zamknięciu przez "krzyżyk" chcę aby to "główne" okno znowu stało się widoczne. Zrobiłem tak:

Kod głównego programu do odpalenia. Nazwa jego to ExpertSystem:

@Override
	public void actionPerformed(ActionEvent e)
	{
		Object input = e.getSource();
		
		if(input == head)
		{
			System.out.println("JESTEM W GLOWIE");
			Glowa a = new Glowa(this);
			this.setVisible(false);
			a.setVisible(true);
			// dispose();
			
		}

Kod tego "nowego" okna:

@Override
	public void windowClosing(WindowEvent e)
	{
		context.setVisible(true);
		dispose();

	}
.........
.........
private ExpertSystem context;

public Glowa(ExpertSystem context)
	{
		
		super();
		setTitle("Diagnoza glowy");
		setSize(570,200);
		setLocation(450, 300);
		
		summaryLabelLeft.setBounds(20,140, 70, 30);
		summaryLabelRight.setBounds(90,141, 400, 30);
		
		this.context = context;
		
		this.setVisible(true);
		
		//summaryLabelRight.setText("SDADSADAS");
		
		
	}

Przesyłanie context'u i zrobienia czego tam z nim umiem w Androidzie i zastosowałem to samo rozwiązanie lecz nic się nie dzieje. Okno się odpala nowe i znika zgodnie z instrukcją. Potem przy zamknięciu przez "krzyżyk" nowego okna już nie chce się pojawić a widok pracy tego programu mam cały czas, że jest odpalony w tle. Co robię źle?