Zapis obiektu DefaultTreeModel do pliku

0

Witam.
Stworzyłem sobie obiekt JTree który posiada mój własny model MyTReeModel. Klasa ta dziedziczy po DefaultTreeModel oraz implementuje Serializable. W gałęziach drzewa znajdują się też JTable, oraz przekazje obiekt po JFrame ( nie wiem czy to ma jakieśznaczenie). Przy próbie zapisu obietu mam wyjątek:

java.io.NotSerializableException : javax.swing.GroupLayout

Czy jest możliwe zapisanie tak złożonego obiektu do pliku? Dodam, że zapis obiektu prostej klasy (bez pol i metod) działa.

0

Wszystkie (prawie) składowe muszą implementować interfejs Serializable. Składowa będzie pomijana podczas serializacji jeśli jest transient.

public class Foo
{
    ... transient String passwd'
}
0

doszedłęm do wniosku, ze bede zapisywac tylko model tabelek, które znajdują sie w tym drzewie. Klasa modelu tabeli dziedziczy po AbstractTableModel, i implementuje Serializable. przy próbie zapisu obiektu modelu dostaje błąd

java.io.NotSerializableException : sun.swing.table.DefaultTableCellHeaderRenderer$EmptyIcon

Na wszelki wypatek wszystkie zmienne ustawiłem jako transient. Czy musze jakos ustawic Serializable dla AbstractTableModel?

0

Dośc historyczny to wątek, ale stwierdziłem że moż ktoś bedzie miał podobny problem jaki jest tu opisany i na jaki ja sam się natknąłem, więc pisze jak było u mnie.

Miałem okna dialogowe z tabelą, a dla tebali stworzyłem model danych implementujacy AbstractTableModel. Ponadto jako słuchacz zmian w modelu danych tabeli podpięłem okno dialogowe w którym była osadzona tabela. Przy serializacji pojawił się znany błąd. Okazał się że wystarczy uzyć "removeTableModelListener" aby odpiąć okno dialogowe od modelu danych i serializacja poszła.

Podczas serializacji obiektu z danymi, komputer próbował serializować także JDialog, ponieważ obiekt z danymi zawierał referencje do JDialog.

Taka moja teoria.

JK

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