Zamykanie okna

0

Problem pojawia się gdy.

Mam tak okno, jesli klikne w Okno otwiera mi sie nowy obiekt nowe okno (zazwijmy je okno2). Metoda klikniecia jest zamieszczona w Oknie1 i to ona wywoluje konstruktor Okna2. Pod komenda wywolujaca konstruktor Okna2 mam polecenie dispose(); Aby zamknąć okno1. Jednak ono sie nie zamyka nie wiem dlaczego i w rezultacie mam 2 otwarte ;/

Okno1:

table.addMouseListener(new MouseAdapter()
{
public void mouseClicked(final MouseEvent e)
{
if (e.getButton() == MouseEvent.BUTTON1 && e.getClickCount() == 2)
{

                 JTable tabela=(JTable)(e.getSource());                    //obiera numer wiersza przy kliknięciu
                 index_do_edycji=tabela.getSelectedRow();
                <b> Okno_personel_edycja personel_edycja= new Okno_personel_edycja(index_do_edycji);</b>
                 <b>dispose();</b>
                }                                                                        // kliknieto 2x lewym przyciskiem myszki!
            if (e.getButton() == MouseEvent.BUTTON1 && e.getClickCount() == 1)
                {
                 JTable tabela=(JTable)(e.getSource());                    //obiera numer wiersza przy kliknięciu
                 index_do_usuniecia=tabela.getSelectedRow();
                }
            };
        });

I tu powinno sie zamknać

Okno2:

Object zrodlo = evt.getSource();
if(zrodlo==zapisz)
{
personnel = new ArrayList<Pracownik>(EmployeeListDecorator.readList(fileName));
personnel.get(numer_wiersza)._imie=pole_pracownik2.getText();
personnel.get(numer_wiersza)._haslo=pole_haslo2.getText();
//zapis---------------------------------------------------------------
if(EmployeeListDecorator.saveList(personnel, fileName))
{System.out.println("Zapisalem liste pracownikow...");}
else {System.out.println("Nie udalo sie zapisac listy pracownikow.");return;}
dispose(); //Dla odswierzenia poprzedniego okna
Okno_personel okienko2= new Okno_personel();

    }

2gie sie zamyka i wszystko ok Tylko nie wiem dalczego nie chce sie zamknać pierwsze ;/

Czy sa jakies inne komendy na zamkniecie Okna ( nie aplikacji )?

0
   setVisible(false);
0

Tez nie działa, nie wiem dlaczego.

0

Widocznie wywołujesz te metody dla innego obiektu, a nie dla okna, które chcesz zrobić niewidocznym. Metoda dispose() usuwa okno. Jak będziesz chciał je ponownie pokazać, to będziesz je musiał na nowo konstruować, jeżeli użytkownik cos w tym oknie wprowadził, to straci to.

0

To by sie zgadzało bo:

table.addMouseListener(new MouseAdapter()
{
public void mouseClicked(final MouseEvent e)
{
if (e.getButton() == MouseEvent.BUTTON1 && e.getClickCount() == 2)
{
JTable tabela=(JTable)(e.getSource()); //obiera numer wiersza przy kliknięciu
index_do_edycji=tabela.getSelectedRow();
Okno_personel_edycja personel_edycja= new Okno_personel_edycja(index_do_edycji);
} // kliknieto 2x lewym przyciskiem myszki!
if (e.getButton() == MouseEvent.BUTTON1 && e.getClickCount() == 1)
{
JTable tabela=(JTable)(e.getSource()); //obiera numer wiersza przy kliknięciu
index_do_usuniecia=tabela.getSelectedRow();
//-------- do wyswietlaniu w polach------------------------
personnel = new ArrayList<Pracownik>(EmployeeListDecorator.readList(fileName));
pole_pracownik.setText(personnel.get(index_do_usuniecia)._imie);
pole_haslo.setText(personnel.get(index_do_usuniecia)._haslo);
}
};
});

Przypisana jest dla obiektu table ;)

A teraz nowe pytanie wobec tego jak przypisać dispose() w tym miejscu do obiektu nadrzednego czyli w moim przypadku okna?

0

Ok juz mam Mieliscie racje dzieki ;)

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