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?