Rogue Wave® JViews ライブラリーでは、グラフィック・オブジェクトをストリームに保存し、グラフィック・オブジェクトをストリームから読み込むために次の 2 つのクラスを提供しています。
- IlvOutputStream は、クラス
IlvManager
に使用され、このクラスが含むすべてのグラフィック・オブジェクトを保存します。
グラフィック・オブジェクトは、次の
IlvGraphic
クラスの write
メソッドを継承するため、常に IlvOutputStream
に書き込まれます。public void write(IlvOutputStream stream) throws IOException
クラスに含まれる情報を保存するために、このメソッドをオーバーライドしてクラス
IlvOutputStream
のメソッドを使用することができます。このメソッドをオーバーライドするときは、スーパークラスの write
メソッドを呼び出して、そのスーパークラスに関連する情報を保存することを忘れないようにしてください。次の例に近いものが得られます。public void write(IlvOutputStream stream) throws IOException { // write fields of super class super.write(stream); // write fields of my class stream.write("color", getColor()); stream.write("thickness", getThickness()); .... }
IlvInputStream
からグラフィック・オブジェクトを読み込むには、IlvInputStream
でコンストラクターを作成する必要があります。write
メソッドをオーバーライドしていない場合でも、このコンストラクターは必須です。クラス IlvGraphic の対応するコンストラクターは次のとおりです。public IlvGraphic(IlvInputStream stream) throws IlvReadFileException
MyClass
がクラス名の場合は、新規コンストラクターは次のようになります。public MyClass(IlvInputStream stream) throws IlvReadFileException
このコンストラクターの本文では、まずスーパークラスの対応するコンストラクターを呼び出してから、
write
メソッドに保存した情報を読み込みます。上記の例では、対応するコンストラクターは次のようになります。public MyClass(IlvInputStream stream) throws IlvReadFileException { super(stream); setColor(stream.readColor("color")); setThickness(stream.readInt("thickness")); ... }
重要
IlvManager
オブジェクトをシリアライゼーションする推奨方法は IVL を介したシリアライゼーションで、Java™
によるシリアライゼーションではありません。クラス・マネージャーは、シリアライゼーションできない Java SE オブジェクトを内部管理するため、シリアライゼーションは IlvIcon
やその他のクラスなどのグラフィック・オブジェクトを含むマネージャーに対しては機能しません。