Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: GUI и Java FX приложения > не отображается картинка rtf файла в JTextPane


Автор: spbnvb 16.8.2010, 21:49
Такой вот вопрос. Смотрел пример http://www.javafaq.nu/java-bookpage-31-3.html где в JTextPane отображаются изображения. Попробовал такой вот код:

Код

  protected DefaultStyledDocument m_doc;
    protected StyleContext m_context;
  protected RTFEditorKit m_kit;

........................................................................................
Код

            try {

              InputStream in = new FileInputStream("c:/f2.rtf");

              m_doc = new DefaultStyledDocument(m_context);

              m_kit.read(in, m_doc, 0);
              m_monitor.setEditable(false);
              m_monitor.setContentType("text/rtf");
              m_monitor.setDocument(m_doc);
              

              in.close();

            }

            catch (Exception ex) {

              ex.printStackTrace();

            }


Сделал в ворде документ с картинкой. Сохранил в формате rtf. Открываю его этой прогой, форматированный текст как положено, а картинки нету. Принцип вродь тот же. В чем же загвоздка?

По ходу просьба, подскажите компоненту, если имеется, редактор rtf с каким то минимальным набором кнопочек для форматирования. Мне не лень написать, просто времени очень мало.

Заранее спасибо!

Автор: Connie 17.8.2010, 13:00
http://download.oracle.com/javase/tutorial/uiswing/examples/components/index.html#TextSamplerDemo

Хотя это не совсем то 

Автор: armixx 7.12.2010, 22:37
Сделал по тому же примеру:

Код

         JTextPane jMsgText=new JTextPane();
         StyleContext m_context=new StyleContext();
         DefaultStyledDocument m_doc=new DefaultStyledDocument(m_context);
         RTFEditorKit m_kit=new RTFEditorKit();
         m_kit.read(in,m_doc,0);
         jMsgText.setContentType(m_kit.getContentType());
         jMsgText.setDocument(m_doc);


Мало того что картинка не прорисовывается, но и "русский" текст не выводится.
Объясните кто-нибудь, как "родные" стили из RTF поднять, или в чём ещё здесь беда?

Автор: mgarin 8.12.2010, 14:20
На тему отображения картинок в документе...

Довольно давно встретил ту же проблему при использовании JEditorPane (а также других swing-компонентов поддерживающих HTML-контент) - хотелось где-то рядом с файлом хранить изображения и чтобы область читала их оттуда а не от местоположения приложения или еще откуда.
Правда там был HTML а не RTF, но вероятно может помочь.

Нашел пару вещей, особо нигде не описанных...

JEditorPane:
Код
( ( HTMLDocument ) editorPane.getDocument () ).setBase ( new File ( imageFolder ).toURI ().toURL () );


JComponent:
Код
component.putClientProperty ( BasicHTML.documentBaseKey, new File ( imageFolder ).toURI ().toURL () );
component.updateUI ();


Таким образом можно указывать корень, откуда непосредственно рендерер HTML'я может считать нужные ему ресурсы.

В вашем случае думаю есть аналогичная проблема - JTextPane просто не находит путей к изображениям.
Если я прав - изображения же у Вас хранятся отдельно от RTF?..

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)