ObjectOutputStream - zapis bez serializacji

0

Witam.

Mam takowy problem. Nigdzie w necie nie mogę znaleźć informacji na temat mnie interesujący, a mianowicie:

Piszę program z wykorzystaniem biblioteki SWT i potrzebuje zapisać pewne obiekty z niej (np. Image, Color, Text) na dysku. Do tej pory korzystałem z AWT i Swinga, więc nie musiałem się martwić serializacją, a SWT nie ma tego wbudowanego.
Więc czy jest możliwość zapisu (również odczytu) obiektów z SWT podobnie jak te serializowane. Chodzi o coś takiego, aby zapisać cały obiekt klasy 'Klasa' zawierający obiekt(y) z SWT:

 
//
//kod pisany z palca, niekompilowany, pokazuje tylko problem
//

import java.io.Serializable;
import org.eclipse.swt.graphics.Image;

public class Klasa implements Serializable {
  
  private static final long serialVersionUID = -5458770022571283520L;
  private Image image;

  (...)

}

public class Zapis {

  public static void zapisz(Klasa k)
  {
    try
    { 
      ObjectOutputStream out = new ObjectOutputStream (new FileOutputStream("plik"));
      out.writeObject(k);
      out.close();
    }
    catch(...)
    {
    }

  }
}

Wiem, że w powyższy sposób nie da się zapisać nie serializowanego obiektu. Przynajmniej przy próbie takiego zapisu, program rzuca wyjątek, że obiekt (w tym przypadku) Image jest nie serializowany i nie da się go zapisać, ale może jest jakiś odpowiednik klasy ObjectOutputStream, która może zapisać obiekty z SWT, w podobny sposób (czyli podaje jako argument cały obiekt i nic więcej mnie nie martwi)?

1

Nigdy nie pisałem w SWT, ale bym zrobił tak:

Zaimplementuj w swoim obiekcie interfejs http://download.oracle.com/javase/6/docs/api/java/io/Externalizable.html
Do zapisu i odczytu Image użyj http://help.eclipse.org/indigo/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Freference%2Fapi%2Forg%2Feclipse%2Fswt%2Fgraphics%2FImageLoader.html (oczywiście jakiegoś bezstratnego formatu).

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