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

Поиск:

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


Бывалый
*


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

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



Подскажите какой компонент swing или нетбинс  лучше использовать чтобы  отображать большие изображения в интерфейсе программы
так же надо иметь возможность  перезагрузки изображения во время работы приложения и если  картинка больше размера компанента то она б сжималась
вот что лучше использовать (может у кого есть уже готовый компонент)

и еще вопросик по картинкам
вот у нас есть например gif  картинка
как сделать так  чтобы после обработки прогой переставала читаться ОС и др средствами просмотра как рисунок 
но прога (компонент см выше)  продолжал бы ее нормально отображать.
я не очень понимаю возможно ли такое сделать 
может кто подскажет
PM MAIL   Вверх
skhilkov
Дата 20.10.2008, 09:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



xber9
сделать можно все )
компоннта готового нет, но писать его не так уж долго )
1) Для отображения я бы использовал JPanel
2) Для того чтобы система не открывала, а компонент открывал самое простое что можно придумать - 
открывать файл и дописывать в него какую-нить фигню(в начало и конец). А при открытии компонентом можно создавать временный файл, либо в память засовывать уже очищенный от фигни файл )


--------------------
Кто понял жизнь, тот не спешит. 
PM MAIL   Вверх
maxlab
Дата 20.10.2008, 23:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Привет
вот примерчик с маштабированием. 
Код

                        imageIcon = new ImageIcon(getClass().getResource("/b2009/images/file_broken.png"));
                        jScrollPane.setViewportView(new ImagePanel(imageIcon.getImage(), jScrollPane));

панелька
Код

public class ImagePanel extends JPanel {
    
    public ImagePanel(Image image, JScrollPane dist) {
        this.image = image;
        this.dist = dist;
    }
    public void paint(Graphics g) {
        Graphics2D g2D = (Graphics2D) g;
        g2D.setPaint(Color.lightGray);
        g2D.fillRect(0,0,image.getWidth(this),image.getHeight(this));
        g2D.drawImage(image,0,0,dist.getWidth(),dist.getHeight(),
                0,0,image.getWidth(this),image.getHeight(this),this);
    }
    Image image ;
    JScrollPane dist;
}


--------------------
Удивительное рядом... но оно запрещено!
PM MAIL   Вверх
xber9
Дата 21.10.2008, 12:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



попутно появляются вопросы 
для чего нужен JScrollPane dist 
как сделать функцию перерисовки компонент при смене изображения 


а вот кстати то у мя получилось на основе вашего кода но как сделать пересесовк уя не знаю
Код

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package imPack;

import java.beans.*;
import java.io.Serializable;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import javax.swing.ImageIcon;
import javax.swing.JPanel;
import javax.swing.JScrollPane;

/**
 * @author Владелец
 */
public class ImagePatelBran   extends JPanel  implements Serializable {
    
    public void setImage (String filePath, JScrollPane dist) {
       ImageIcon inIc=new ImageIcon(filePath);
       this.image =inIc.getImage() ;
        this.dist = dist;

    }

   public ImagePatelBran () {
    propertySupport = new PropertyChangeSupport(this);
       
   }

    public String getSampleProperty() {
        return sampleProperty;
    }

    public void setSampleProperty(String value) {
        String oldValue = sampleProperty;
        sampleProperty = value;
        propertySupport.firePropertyChange(PROP_SAMPLE_PROPERTY, oldValue, sampleProperty);
    }


    public void addPropertyChangeListener(PropertyChangeListener listener) {
        propertySupport.addPropertyChangeListener(listener);
    }

    public void removePropertyChangeListener(PropertyChangeListener listener) {
        propertySupport.removePropertyChangeListener(listener);
    }


 public void paint(Graphics g) {
    
if(image==null && dist==null ){
ImageIcon inIc=new ImageIcon("pic/def.jpg");
image=inIc.getImage();
dist=new JScrollPane();
}
     
     Graphics2D g2D = (Graphics2D) g;
        g2D.setPaint(Color.lightGray);
        g2D.fillRect(0,0,image.getWidth(this),image.getHeight(this));
        g2D.drawImage(image,0,0,dist.getWidth(),dist.getHeight(),
                0,0,image.getWidth(this),image.getHeight(this),this);
    }
    Image image ;
    JScrollPane dist;
   public static final String PROP_SAMPLE_PROPERTY = "sampleProperty";

    private String sampleProperty;

    private PropertyChangeSupport propertySupport;

}

PM MAIL   Вверх
maxlab
Дата 21.10.2008, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(xber9 @ 21.10.2008,  12:56)
попутно появляются вопросы 
для чего нужен JScrollPane dist 
как сделать функцию перерисовки компонент при смене изображения 

ImagePanel у меня лежит в jScrollPane... Для чего? Уже не помню... smile
а перерисовать изображение нужно так
jScrollPane.repaint();

Вспомнил... сначала в скроллируемой панели висела лейба для отображения картинки. Потом я заменил ее на ImagePanel. По jScrollPane масштабируется картинка при изменении размеров окна. 

Это сообщение отредактировал(а) maxlab - 21.10.2008, 16:34
--------------------
Удивительное рядом... но оно запрещено!
PM MAIL   Вверх
xber9
Дата 21.10.2008, 21:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



а можно ли например ее передавать не как параметр а сделать   просто статическую ( это я про скрол)

Добавлено через 2 минуты и 45 секунд
если да то как  тоеть чтоб эффект был такой же но   никиких параметров вне пердавать кторе имени файла
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.0835 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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