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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Картинки в JEditorPane, Не воркают :( 
V
    Опции темы
snaker
Дата 13.4.2007, 20:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Есть Swing-овский JEditorPane с contentType-ом - text/html, в котором динамически изменяется содержимое(HTML код) с помощью jEditorPane.setText();

Трабла в том, что он не хочет отображать картинки  
Код

jEditorPane.setText("<img src=icon.gif>");
 , где icon.gif - файлик из того же каталога, в котором лежат все классы программы.... Вместо той картинки он рисует свою стандартную (типа, тут должна быть картинка но ее нет, как будто-бы неправильно указано имя файла).... 

Подскажите плз, как с этим бороться? Или посоветуйте какой-либо другой метод для отрисовки картинок в тексте в компоненте, содержимое которого, можно динамически менять..


Заранее, спасибо smile 
PM MAIL ICQ   Вверх
Foo
Дата 13.4.2007, 20:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



если навскидку, то может

Код

jEditorPane.setText("<html><img src=icon.gif></html>");


а вообще приведи запскаемый код, чтобы посмореть лучше
--------------------
qip
PM MAIL   Вверх
snaker
Дата 13.4.2007, 20:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Естессно не помогло... smile оно и без тегов <html> прекрасно работает ;)
Я так понимаю, проблема в том, что ему надо подгрузить картинку уже в процессе выполнения программы, для ее отображения...

И еще вопрос до кучи....
Этот jEditorPane помещен в JScrollPane... Как его проскролить на максимум вниз? А то при дабвлениии текста он не автоскролится setAutoScrolls(true) не помогает :(

Это сообщение отредактировал(а) snaker - 13.4.2007, 20:55
PM MAIL ICQ   Вверх
Foo
Дата 13.4.2007, 22:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



по второму вопросу:
Код

pane.scrollRectToVisible()


по первому:
а код ты не можеш запостить? а то влом набивать
--------------------
qip
PM MAIL   Вверх
snaker
Дата 13.4.2007, 22:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Полный код не буду давать, там сам черт ногу сломит, чат делаю )) Начинаю знакомство с Java-ой.... вот надо теперь добавить смайлы... А картинки ну никак не могу вставить в текст...

Вот код только с JEditorPane
Код

import java.awt.Container;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.IOException;

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


public class JEP extends JFrame{
    JEP() {
         super("   J a v a   C h a t");
         Container c = getContentPane();
         final JEditorPane chw= new JEditorPane();
         chw.setEditable(false);
         chw.setContentType("text/html");
         chw.setText("<html><img src=icon.gif></html>");
         JScrollPane s_chw=new JScrollPane(chw);
         s_chw.setBounds(10,10,460,400);
         setSize(590,580);
         setLocationRelativeTo(null);
         c.setLayout(null);
         c.add(s_chw);
         
           addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e) {
                      System.exit(0);}});
         }
    
    public static void main(String[] args) throws IOException 
      {
        JEP chat = new JEP(); 
        chat.setVisible(true);
      }
}


Сеньки за подсказку.. попробую scrollRectToVisible()
PM MAIL ICQ   Вверх
Foo
Дата 14.4.2007, 03:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Код

chw.setText("<html><img src='file:icon.gif'></html>");

--------------------
qip
PM MAIL   Вверх
snaker
Дата 14.4.2007, 09:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Хаа! Класс, никогда б не подумал smile Огромное спасибо!
PM MAIL ICQ   Вверх
snaker
Дата 14.4.2007, 23:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Таксь... возникла новая трабла... Как я раньше говорил.. это у меня чат... Так вот.. сделал нормальное распознавание смайлов и замену их на соответствующий тег <img src=""> но, т.к. в EditorPane при каждом сообщении грузится новый html код со всеми сообщениями, а КАЖДАЯ картинка подгружается из файла... то уже при десятке-другом смайлов они начинают тупить с подгрузкой...причем довольно сильно...

Что можете посоветовать? Мож какой-нить другой компонент заюзать, где можно было бы посреди текста вставлять картинки, заранее подгруженные в память  smile 
PM MAIL ICQ   Вверх
Foo
Дата 18.4.2007, 00:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



кэшировать рисунки
--------------------
qip
PM MAIL   Вверх
snaker
Дата 18.4.2007, 00:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Хе, было б неплохо... Но как это реализовать? Или это уже реализовали за меня?   smile 
PM MAIL ICQ   Вверх
snaker
  Дата 21.4.2007, 23:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Выходит не видать мне смайлов в чате? smile  smile 
PM MAIL ICQ   Вверх
Foo
Дата 22.4.2007, 14:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



если ты сам не можеш написать кэш, тогда скорее всего да, не видать
--------------------
qip
PM MAIL   Вверх
snaker
Дата 22.4.2007, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Та пробовал уже JTextPane.insertComponent(new JLabel(smilepic));  
Но дело в том, что всталяет то он нормально.. но когда мне приходится обновлять текст JTextPane.setText("asdsadasdasd");   то картинки, естессно, пропадают... точнее, насколько я понимаю... компоненты остаются потомками моей текстпанельки, но просто исчезают...

 smile 

Это сообщение отредактировал(а) snaker - 22.4.2007, 14:29
PM MAIL ICQ   Вверх
Foo
Дата 22.4.2007, 14:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



покажи код
--------------------
qip
PM MAIL   Вверх
snaker
Дата 22.4.2007, 19:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Итак.. текст а в нем картинка..... Если убрать комментарий, то картинка пропадает....
Код

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.IOException;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JTextPane;


public class TPane extends JFrame{
    TPane() {
         
         Container c = getContentPane();
         final JTextPane chw= new JTextPane();
         chw.setEditable(false);
         chw.setText("Sample text");
         chw.setCaretPosition(7);
         chw.insertComponent(new JLabel(new ImageIcon("a.png")));
         //chw.setText("Sample text");
         JScrollPane s_chw=new JScrollPane(chw);
         c.add(s_chw,BorderLayout.CENTER);
         setSize(420, 420);
         
           addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                      System.exit(0);}});
         }
    
    public static void main(String[] args) throws IOException 
      {
        TPane win = new TPane(); 
        win.setVisible(true);
      }

}



Как вариант, можно было бы, по идее, добавлать в поле сообщений каждое сообщение в виде отдельного TextPane-а и текст родительского компонента не менять вовсе.... Но опять же.. манагеры компоновки и связанные с этим траблы... Текстпейны будут вылазить за пределы родительского.... в общем гемора еще больше.... Та и памяти жрать больше тоже будет, если каждое сообщение отдельным TextPane-ом.

Уже моск плавиццо  smile 
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.1054 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


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

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