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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> поместить Вlob в jLabel 
:(
    Опции темы
Swatch
Дата 9.10.2007, 11:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Добрый день. 
Есть считанное из базы изображение. как поместить его в jLabel, не подскажите?
Код

        image im = main.currentImage;//табличка в базе
        
        Blob blob = im.getImage();
        try {            
            BufferedImage image = ImageIO.read(blob.getBinaryStream());// изображение
            jLabel15.setIcon(.....);// что сюда надо написать?????
        } catch (SQLException ex) {
            jLabel15.setIcon(null);
        } catch (IOException ex) {
            jLabel15.setIcon(null);
        }        

PM MAIL   Вверх
powerOn
Дата 9.10.2007, 11:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


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

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




M
powerOn
Swatch, уже не в первый раз переношу твои темы из общих вопросов в гуи! 
Подходи пожалуйста более ответственно к выбору раздела для своего поста!




--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
serger
Дата 9.10.2007, 11:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



раскидали вопросы..
добавть это..
Код

        ImageIcon i = new ImageIcon(image);
        l.setIcon(i);




--------------------
упс!
PM MAIL WWW Skype GTalk Jabber   Вверх
Swatch
Дата 9.10.2007, 11:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



хмм... оч. интересно... изображение не загружается... ловится SQLException. 
Код

        Blob blob = im.getImage();
        try {            
            BufferedImage image = ImageIO.read(blob.getBinaryStream());
            ImageIcon ic = new ImageIcon(image);
            jLabel15.setIcon(ic);
        } catch (SQLException ex) {
            jLabel15.setIcon(null);
        } catch (IOException ex) {
            jLabel15.setIcon(null);
        } catch (NullPointerException ex){
            jLabel15.setIcon(null);
        }       

Изображение точно записалось в базу. записала его так:
Код

                BufferedImage image = ImageIO.read(jFileChooser1.getSelectedFile().getCanonicalFile());
                ByteArrayOutputStream output = new ByteArrayOutputStream();
                ImageIO.write(image, "jpg", output);
                SerialBlob blob;
                try {
                    blob = new SerialBlob(output.toByteArray());
                } catch (SerialException ex) {
                    blob = null;
                } catch (SQLException ex) {
                    blob = null;
                }
                property p = main.currentPropertyTemp;
                image im = main.currentImage;
                im.setProperty_id(p);
                im.setImage(blob);
                HibernateUtil.Save(im);


В чем может быть дело???
PM MAIL   Вверх
AlexeyVorotnikov
Дата 9.10.2007, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Что за классы property и image?

И где именно ловится SQLException и что в нём написано?


--------------------
RTFM!
Три источника и три составные части Java: The Java Language Specification, Java Platform API Specification, The Java Virtual Machine Specification
PM MAIL   Вверх
serger
Дата 9.10.2007, 12:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Сперва..

1. Конкретнее можите сказать какое SQL exception? Привести его текст.

2. Вы точно уверены, что картинка в базу попадает? (Проверьте, раз привели текст значит я так думаю не смотрели в базе)

3. Ну и проверьте все запросы.


--------------------
упс!
PM MAIL WWW Skype GTalk Jabber   Вверх
Swatch
Дата 9.10.2007, 13:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



1. вот такой эксепшн 
org.firebirdsql.jdbc.FBSQLException: GDS Exception. 335544332. invalid transaction handle (expecting explicit transaction start)
        at org.firebirdsql.jdbc.FBBlob$FBBlobInputStream.<init>(FBBlob.java:647)
        at org.firebirdsql.jdbc.FBBlob$FBBlobInputStream.<init>(FBBlob.java:620)
        at org.firebirdsql.jdbc.FBBlob.getBinaryStream(FBBlob.java:357)
        at org.hibernate.lob.SerializableBlob.getBinaryStream(SerializableBlob.java:39)

2. зря Вы думаете, что в базу я не смотрела. туда я посмотрела в первую очередь и картинка там есть.

3. SQLException ловится вот здесь
Код

BufferedImage image = ImageIO.read(blob.getBinaryStream());


4. property и image это мои классы, которые соответствуют таблицам в БД. в них прописаны методы гет и сет для полей таблиц.
PM MAIL   Вверх
AlexeyVorotnikov
Дата 9.10.2007, 13:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Судя по сообщению "invalid transaction handle (expecting explicit transaction start)" что-то случилось с транзакцией. Скорее всего она либо закрылась раньше времени, либо вообще не открывалась.


--------------------
RTFM!
Три источника и три составные части Java: The Java Language Specification, Java Platform API Specification, The Java Virtual Machine Specification
PM MAIL   Вверх
serger
Дата 9.10.2007, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Ну, в принципе, он же Вам грит в чём проблема.. smile
У Вас не открывается транзакция перед запросом.. Точнее не скажу. Посмотрите-проверьте как настроены транзакции.

Меня опередили. smile

ps
Совет: внимательно смотрите trace ошибок и читайте название ошибки - часто это очень помогает, а в случае SQLException - ответ на ошибку бывает очень подробным и конкретным.

Это сообщение отредактировал(а) serger - 9.10.2007, 13:26


--------------------
упс!
PM MAIL WWW Skype GTalk Jabber   Вверх
AlexeyVorotnikov
Дата 9.10.2007, 13:42 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Скорее всего проблема вот в чём: многие базы не поддерживают отложенное чтение из блоба. Т.е. прочитать данные из блоба надо сразу же как прочитана из базы соответствующая запись. Если прочитать из базы другую запись, то блоб из предыдущей записи становится недоступен.  Я не знаю как реализована работа с блобами в FireBird. Но похожая проблема у меня была при работе с другой базой.


--------------------
RTFM!
Три источника и три составные части Java: The Java Language Specification, Java Platform API Specification, The Java Virtual Machine Specification
PM MAIL   Вверх
serger
Дата 9.10.2007, 14:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Из 5 IB я читал не через Blob, а через getBytes(). Можно покапать в этом направлении. Правда, не имею понятия как Hibernate с массивом байт будет работать...


--------------------
упс!
PM MAIL WWW Skype GTalk Jabber   Вверх
Swatch
Дата 9.10.2007, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



хммм... пробовала уже, что-то пока безрезультатно....
PM MAIL   Вверх
AlexeyVorotnikov
Дата 9.10.2007, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Давайте Вы всё-таки покажете нам свой класс image и мапинг для него.


--------------------
RTFM!
Три источника и три составные части Java: The Java Language Specification, Java Platform API Specification, The Java Virtual Machine Specification
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.1027 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


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

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