2011-02-02 2 views
0

Я оценивал удобство использования StyledEditorKit, используемого в качестве набора редакторов в JTextPane (текстовая панель). После того, как пользователь вводит какой-либо контент в редактор и закрывает редактор, программа получает документ (textpane.getDocument()) и попытаться сериализовать объект Document (StyledEditorKit - Document - NotSerializableException

out = new ObjectOutputStream(new FileOutputStream("f://test1234.ser")); 
out.writeObject(doc);) 

).

Но в этот момент возникает исключение NotSerializableException. Однако, если пользователь не набирает текст (объект Document не был изменен редактором), приложение может сериализовать объект Document без проблем. Такое поведение происходит с использованием Java 5 и 6, но не с использованием 1.4.

Любые идеи?

спасибо. Felipo.

ответ

1

На самом деле вам нужно использовать один из методов write() для набора, передавая Writer или OutputStream. Когда вам нужно восстановить документ, вы создаете пустой и используете метод read(), проходящий через InputStream или Writer. . HTMLEditorKit создает html-представление содержимого. RTFEditorKit соответственно производит rtf. Вы можете написать свой собственный Writer/Reader, например, http://java-sl.com/editor_kit_tutorial_reader_writer.html

Смежные вопросы