Модераторы: LSD, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> RTFEditorKit что это и как этим пользоваться? 
V
    Опции темы
Metal_Heart
Дата 4.8.2005, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


а почему бы и нет?
**


Профиль
Группа: Участник
Сообщений: 728
Регистрация: 31.3.2005
Где: Москва

Репутация: 1
Всего: 12



После длительного перерыва вновь возвращаюсь к так мне полюбившейся ЯВЕ.
Поставил себе цель - сделать редактор с подсветкой синтаксиса. Да, многие тут уже это делали, но в отличие от них я ещё в самом начале пути и столкнулся с очень простой проблемой:

я думал, что RTFEditorKit это компонент вроде JTextArea, но оказалось что не совсем.

Потому, вопрос - что это такое и как им пользоваться.

Очень прошу - только по русски, ну не владею я английским smile
Добавлено @ 14:19
а примеры можно и не по русски smile

Это сообщение отредактировал(а) Metal_Heart - 4.8.2005, 14:14


--------------------
 не стыдно учиться, а стыдно не учиться 
PM ICQ   Вверх
LSD
Дата 4.8.2005, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 38
Всего: 538



RTFEditorKit это класс для создания javax.swing.text.Document из файла содержащего текст в формате RTF. Сам javax.swing.text.Document может быть отображен в JTextArea, а потом записан обратно в файл с помощью того-же RTFEditorKit.
Он сам по себе довольно простой, read(InputStream, Document, int) читать, write(OutputStream, Document, int, int) писать.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Metal_Heart
Дата 5.8.2005, 11:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


а почему бы и нет?
**


Профиль
Группа: Участник
Сообщений: 728
Регистрация: 31.3.2005
Где: Москва

Репутация: 1
Всего: 12



LSD, большое спасибо, вот набросал примерчик, который читает уже сформированный RTF-файлик, но шрифты, почему-то отображаются без цвета, жирности и курсива (да к тому же без кирилицы).

Что нужно указать, чтоб файлик отображался также как и исходный:
Цитата

test test test test



основная часть исходника:
Код

  RTFEditorKit  rtf  = new RTFEditorKit();
  JTextArea     text = new JTextArea();
  Document      doc;
  InputStream   in;

....
 
 in = new FileInputStream("test.rtf");
 doc = new RTFEditorKit().createDefaultDocument();
 rtf.read(in, doc, 0);
 text.setDocument(doc);




--------------------
 не стыдно учиться, а стыдно не учиться 
PM ICQ   Вверх
igon
Дата 5.8.2005, 12:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 327
Регистрация: 30.10.2004

Репутация: 7
Всего: 21



Цитата
почему-то отображаются без цвета, жирности и курсива

Цитата
A JTextArea is a multi-line area that displays plain text.

Попробуй вместо JTextArea JEditorPane


--------------------
Хотите поговорить об этом?
PM   Вверх
Metal_Heart
Дата 5.8.2005, 13:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


а почему бы и нет?
**


Профиль
Группа: Участник
Сообщений: 728
Регистрация: 31.3.2005
Где: Москва

Репутация: 1
Всего: 12



не прошло, видать дело ещёи в настройках самого Document

ни у кого идей нету больше?


Это сообщение отредактировал(а) Metal_Heart - 5.8.2005, 15:14


--------------------
 не стыдно учиться, а стыдно не учиться 
PM ICQ   Вверх
igon
Дата 6.8.2005, 06:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 327
Регистрация: 30.10.2004

Репутация: 7
Всего: 21



Цитата
ни у кого идей нету больше?

А RTFEditorKit использовать всенепременно? smile





--------------------
Хотите поговорить об этом?
PM   Вверх
LSD
Дата 6.8.2005, 10:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 38
Всего: 538



По умолчанию JEditorPane отображает только plain текст. Чтобы этого избежать надо правильно установить для него тип контента:
Код
RTFEditorKit rtf = new RTFEditorKit();
JEditorPane editorPane = new JEditorPane("text/rtf","");
Document doc = rtf.createDefaultDocument();
InputStream in = new FileInputStream("ABCD.rtf");
rtf.read(in, doc, 0);
editorPane.setDocument(doc);
    
JFrame frame = new JFrame();
frame.getContentPane().add(editorPane);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);



--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Metal_Heart
Дата 9.8.2005, 09:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


а почему бы и нет?
**


Профиль
Группа: Участник
Сообщений: 728
Регистрация: 31.3.2005
Где: Москва

Репутация: 1
Всего: 12



LSD и снова СПАСИБО!
Да, дело было в:
Код

JEditorPane editorPane = new JEditorPane("text/rtf","");


igon, а чем тебе RTFEditorKit не угодил?

Я просто хочу знать как он (т.е. RTFEditorKit) работает


--------------------
 не стыдно учиться, а стыдно не учиться 
PM ICQ   Вверх
igon
Дата 10.8.2005, 10:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 327
Регистрация: 30.10.2004

Репутация: 7
Всего: 21



Цитата
igon, а чем тебе RTFEditorKit не угодил?
ИМХО, нет необходимости использовать его явно: он будет выбран по умолчанию, если у JEditorPane content type="text/rtf". Т.е. сработает и
Код

package Test;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;

import javax.swing.JEditorPane;
import javax.swing.JFrame;

public class RTF_EditorPane 
  {
    public RTF_EditorPane()
      {
        JEditorPane editorPane = new JEditorPane();
        editorPane.setContentType("text/rtf");
        try
          {
            InputStreamReader isr = new InputStreamReader(new FileInputStream("C:\\Test\\RTF_EditorPane\\test.rtf"),"windows-1251");
            BufferedReader in = new BufferedReader(isr);
            editorPane.read(in, null);
          }
          catch (FileNotFoundException e)
            {}
          catch (IOException e)
            {}
        JFrame frame = new JFrame();
        frame.getContentPane().add(editorPane);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.pack();
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
     }

     public static void main(String[] args)
     {
          RTF_EditorPane rtf_EditorPane = new RTF_EditorPane();
     }
}



--------------------
Хотите поговорить об этом?
PM   Вверх
Metal_Heart
Дата 10.8.2005, 11:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


а почему бы и нет?
**


Профиль
Группа: Участник
Сообщений: 728
Регистрация: 31.3.2005
Где: Москва

Репутация: 1
Всего: 12



igon, будь добр, поставь плюсик LSD, а то я пока не могу.
Оба его поста очень просты - и в самую точку!


--------------------
 не стыдно учиться, а стыдно не учиться 
PM ICQ   Вверх
LSD
Дата 10.8.2005, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 38
Всего: 538



Цитата(Metal_Heart @ 10.8.2005, 12:04)
igon, будь добр, поставь плюсик LSD, а то я пока не могу.

Спасибо, но не стоит, Lamer George уже сделал это. Два плюса за одно и тоже это уже перебор smile


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Metal_Heart
Дата 10.8.2005, 15:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


а почему бы и нет?
**


Профиль
Группа: Участник
Сообщений: 728
Регистрация: 31.3.2005
Где: Москва

Репутация: 1
Всего: 12



Цитата

Спасибо, но не стоит, Lamer George уже сделал это. Два плюса за одно и тоже это уже перебор smile


не знал..


--------------------
 не стыдно учиться, а стыдно не учиться 
PM ICQ   Вверх
Hidrag
Дата 4.6.2007, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 877
Регистрация: 9.4.2005
Где: JDK

Репутация: 2
Всего: 25



Пытаюсь вытащить rtf файл из ресурса и вывести его в EditorPane, все ок, но выходят одни кракозябры вместо русского текста, как исправить?

Пробывал обоими указанными вариантами, остановился на:
Код

            InputStreamReader isr = new InputStreamReader(ClassLoader.getSystemResourceAsStream("resources/help.rtf"),"windows-1251");
            BufferedReader in = new BufferedReader(isr);
            helpPane.read(in, null);



вроде указываю что "windows-1251" а не помогает... текст ртфки набирал в ворде 2003.


--------------------
user posted image
PM WWW ICQ   Вверх
LSD
Дата 4.6.2007, 16:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 38
Всего: 538



Hidrag, зачем ты используешь Reader? Просто используй InputStream и все.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Hidrag
Дата 4.6.2007, 22:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 877
Регистрация: 9.4.2005
Где: JDK

Репутация: 2
Всего: 25



все равно закарючки :(
я уже не знаю на что свалить, может в офисе свой формат RTF или то что винда англицкая а офис русский...


--------------------
user posted image
PM WWW ICQ   Вверх
LSD
Дата 5.6.2007, 13:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 38
Всего: 538



Выложи сюда свой RTF.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Hidrag
Дата 5.6.2007, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 877
Регистрация: 9.4.2005
Где: JDK

Репутация: 2
Всего: 25



Выкладываю smile 


Присоединённый файл ( Кол-во скачиваний: 1 )
Присоединённый файл  help.rar 2,99 Kb


--------------------
user posted image
PM WWW ICQ   Вверх
Hidrag
Дата 5.6.2007, 17:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 877
Регистрация: 9.4.2005
Где: JDK

Репутация: 2
Всего: 25



Проблема решилась! В русской винде выводит по русски, в англицкой - закарючками...

вот только как в англицкой винде по русски вывести вот это осталось непонятным

Решение нашел!!! Во всем виноват микрософт ворд! Создал ртф в  Google Docs&Spreadsheets и все вывелось по русски!

Это сообщение отредактировал(а) Hidrag - 5.6.2007, 17:21


--------------------
user posted image
PM WWW ICQ   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   jk1
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема »


 




[ Время генерации скрипта: 0.1599 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.