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

Поиск:

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


Leprechaun Software Developer
****


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

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



Можно попробовать определить свой протокол и написать для него хендлер. Но это не так просто будет.


--------------------
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   Вверх
snaker
Дата 22.4.2007, 20:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Герои, конечно, не ищут легких путей, но я только начинаю Java учить...

И, чесно говоря, ничего не понял при чем тут протокол, протокол для чего и какой ему еще хэндлер надо smile
PM MAIL ICQ   Вверх
Foo
Дата 23.4.2007, 11:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Стой! ты же вроде писал там чат свой через хтмл? Только у тя там была проблема что смайлы долго грузятся...
Выложи код где они у тя долго грузятся, нужно просто при старте программы подгрузить все картинки в память и не грузить их каждый раз.
--------------------
qip
PM MAIL   Вверх
snaker
Дата 23.4.2007, 18:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Вот... жмакаем на кнопку и любуемся, как тормозит подгрузка трёхсов смайлов, со второго нажатия еще больше тормоза )

Весь вопрос в том, как вставить туда заранее подгруженную пикчу...
Код

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

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JEditorPane;
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 JEditorPane chw= new JEditorPane();
         chw.setEditable(false);
         chw.setContentType("text/html");
         chw.setText("<img src='file:aa.gif'>");
         JScrollPane s_chw=new JScrollPane(chw);
         setSize(800, 400);
         JButton b=new JButton();
         
         class Btn implements ActionListener{

             public void actionPerformed(ActionEvent e) {
              String s="";
                 for(int i=0;i<300;i++)
                  s+="<img src='file:aa.gif'>";
                 chw.setText(s);

             }
              
         }
           addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                      System.exit(0);}});
           b.addActionListener(new Btn());
           c.add(s_chw,BorderLayout.CENTER);
           c.add(b,BorderLayout.EAST);
         }
    
   
    
    public static void main(String[] args) throws IOException 
      {
        TPane win = new TPane(); 
        win.setVisible(true);
      }

}

PM MAIL ICQ   Вверх
Foo
Дата 23.4.2007, 20:52 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Скорее всего (судя по примерам чатов в инете) тебе, если ты хочеш сделать класный чат, придется рисовать все это дело вместе со смайлами, хотя может я и не прав.

Если не очень крутой, то как альтернативу я тут налабал чтото, посмотри мот покатит. Долго мучился с JEditorPane но так ниче толком не получилось...поэтому сделал подругому. Во всяком случае проблем с тормозами точно не будет, можно делать repaint только для видимой области отображения.

Код

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;

public class TPane extends JFrame {
    
    private JPanel output = new JPanel();
    private JScrollPane scroll;
    
    Integer msgNum = 1;
    
    private JButton but = new JButton("Say");
    private String top = "<html>";
    private String bottom = "</br></html>";
    private String smile = "<img src='file:d:\\a.png'>";
    
    public TPane() {
        output.setLayout(new BoxLayout(output, BoxLayout.Y_AXIS));
        JPanel mainPanel = new JPanel(new BorderLayout());
        setSize(400, 200);
        but.addActionListener(new SayListener());
        scroll = new JScrollPane(output);
        mainPanel.add(scroll, BorderLayout.CENTER);
        mainPanel.add(but, BorderLayout.PAGE_END);
        this.setContentPane(mainPanel);
    }

    public static void main(String[] args) throws IOException {
        TPane win = new TPane();
        win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        win.setVisible(true);
    }
    
    private class SayListener implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            String msg = top + "Test msg #" + msgNum++ + smile + " !!!" + bottom;
            output.add(new JLabel(msg));
            scroll.repaint();
            scroll.validate();
        }
    }
}


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


Новичок



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

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



Foo, сенкс, что-то подобное я пробовал, лейбл неудобно бикоз однострочный... В общем, буду ковырять в эту сторону  smile 
PM MAIL ICQ   Вверх
Foo
Дата 24.4.2007, 15:00 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(snaker @  23.4.2007,  22:10 Найти цитируемый пост)
лейбл неудобно бикоз однострочный


кто тебе такое сказал? 
Код

new JLabel("<html>first line<br>second line<br>third line</html>")


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


Новичок



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

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



ЫЫ.... Реально, туплю 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.0817 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


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

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