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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отображение картинок 
:(
    Опции темы
Swatch
Дата 8.10.2007, 11:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Добрый день. 

Столкнулась с такой проблемой. Надо отображать картинки, которые должны находится в базе. 

Вопросы в следующем:
1. куда отображать картинки.
2. как хранить их в базе?
3. как сделать так, чтобы по кнопке открывался openдиалог, там выбирали файлы и по выбору этот файл отображался там, куда надо отображать картинки.
4. как сделать так, чтобы можно было переходить между картинками, то есть показывалась только одна, а по кнопкам вперед/назад показывались другие, если таковые имеются?
PM MAIL   Вверх
powerOn
Дата 8.10.2007, 12:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


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

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



Цитата(Swatch @  8.10.2007,  12:51 Найти цитируемый пост)
1. куда отображать картинки.

Это к Swing (работа с GUI) отностися вопрос или J2EE (веб страница)? 


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

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


Опытный
**


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

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



к Swing-у. Опять не туда задала вопрос, похоже. :( Простите... smile 
PM MAIL   Вверх
powerOn
Дата 8.10.2007, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


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

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



Почитай тут


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

PM MAIL   Вверх
Swatch
Дата 8.10.2007, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



дело в том, что я представляю, как загрузить картинку.... волнует меня вопрос, как загрузить картинку из базы. а именно, в базе картинка хранится ведь не как JPEG или gif, а как Blob объект. Дак вот, как потом этот объект загрузить?
PM MAIL   Вверх
serger
Дата 8.10.2007, 15:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Банально smile Грузите в поток, связанный с классом изображения.. а изображение передаёте на элемент.. (JLabel, JPanel, куда угодно..)


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


Опытный
**


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

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



эммм.... я не очень разбираюсь в потоках. не подскажете, как грузить в поток, связанный с классом изображения? и что значит, "связанный с классом изображения"? smile 
PM MAIL   Вверх
serger
Дата 9.10.2007, 07:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Гм.. В общем немного помучался с IB:

Практически всё ОЧЕНЬ просто:
Код

        st = c.createStatement();
        ResultSet rs = st.executeQuery("select * from xreports "); // where reportid=1
        if (rs.next()) {
            InputStream is = rs.getBinaryStream("img");
            BufferedImage image = ImageIO.read(is);
        }


Потом просто выводится Image как душе удобно..

ps
Правда 
Код
InputStream is = rs.getBinaryStream("img");
 зависит от БД, но принцип дб понятен..


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


Опытный
**


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

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



хммм... дело в том, что с базой я работаю через хибернейт. Там у меня определены методы getImage и setImage. эти Image-ы типа Blob... вся трудность в том, что мне надо ImageIcon с лейбла превратить в блоб, чтобы поместить в базу и блоб превратить в ImageIcon, чтобы  поместить обратно в лейбл.  smile 
PM MAIL   Вверх
serger
Дата 9.10.2007, 07:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Ничего сложного не должно быть:
1. У блобов есть getBinaryStream ();
2. ImageIcon i = new ImageIcon(image); // image - это BufferedImage

не вижу проблем.. smile


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


Опытный
**


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

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



Хорошо... можете мне в моем коде подсказать ,что сделать. Загружаю иконку на лейбл и пытаюсь в базу сразу запихать.
Код

                jLabel15.setIcon(new javax.swing.ImageIcon(jFileChooser1.getSelectedFile().getCanonicalPath()));//иконка загружается
                property p = main.currentPropertyTemp;
                image im = main.currentImage;
                im.setProperty_id(p);
                javax.swing.ImageIcon ic = (ImageIcon)jLabel15.getIcon();
                im.setImage((Blob)ic.getImage());// вот здесь класскастэксепшн.... я понимаю, что здесь должно быть что-то другое, но что?
                HibernateUtil.Save(im);

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


Опытный
**


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

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



Сначала создаёте ImageIcon. Потом приводите его к Blob. Бред! Поэтому и ошибка.
Код

                javax.swing.ImageIcon ic = (ImageIcon)jLabel15.getIcon();
                im.setImage((Blob)ic.getImage());// вот здесь класскастэксепшн.... я понимаю, что здесь должно быть что-то другое, но что?


Судя по всему Вы пытаетесь занести в блоб объект Image. Это СОВСЕМ НЕ ПРАВИЛЬНО.
Блоб хранит бинарные данные. Image - объект для представления картинок. Абсолютно разные вещи.
В блобе надо хранить картинку в стандартном формате, jpg например (хранить соответственно содержимое файла). А в Image загружать содержимое блоба через поток, примерно так как я показал.

ps. Это работающий пример?

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


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


Опытный
**


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

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



я же написала, что неработающий...

я и хотела спросить, как сделать этот пример работащим.... как конкретно записать картинку, которая в данный момент находится на иконке, в блоб. 
PM MAIL   Вверх
serger
Дата 9.10.2007, 10:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Пример. 
Hibernate не пользовал. Попросите кого-нить переделать под него. ;)
Код

 // id = getId().. - это, доп. генератор..
 String fName = "/2717_1.jpg"; // Тут у Вас будет "jFileChooser1.getSelectedFile().getCanonicalPath()"
 PreparedStatement ps = c.prepareStatement("INSERT INTO pictures(id, name, img) VALUES (?,?,?)");
 File f = new File(fName);
 FileInputStream fis = new FileInputStream(f);
 ps.setInt(1, id);
 ps.setString(2, fName); // Имя сохраняите, чтобы не забыть тип, размещение и тп..
 ps.setBinaryStream(3, fis, (int)f.length());
 ps.executeUpdate();
 ps.close();


(хотя бы тип картинки знать желательно, чтобы потом не было горько и обидно)

На загрузку картинки этот код никак не влияет, хотя можно потом уже из базы её тащить на метку..


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


Опытный
**


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

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



Цитата(Swatch @  9.10.2007,  08:37 Найти цитируемый пост)
дело в том, что с базой я работаю через хибернейт. Там у меня определены методы getImage и setImage. эти Image-ы типа Blob.

А можно поподробнее, как Вы работаете с Blob'ами через Hibernate?
Приведите пример мапинга и кода, работающего с blob'ами.

Добавлено через 9 минут и 6 секунд
Кстати, что эза классы у Вас такие: image и property? Это какие-то Ваши собственные классы?


--------------------
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.

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


 




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


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

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