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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Исчезновение изменённой картинки 
:(
    Опции темы
darkvivi
Дата 31.10.2013, 12:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



 Здравствуйте! Столкнулся со следующей проблемой: я создаю уменьшенную/увеличенную картинку на базе имеющейся images Image. Изображение появляется на секунду, потом исчезает где-то секунд на 20, снова появляется на секунду, затем опять исчезает..
 
Код

scaled = images.getScaledInstance(200,
                        200, Image.SCALE_DEFAULT);
        g.drawImage(scaled, 100,500, this);


 Что это может быть?) С изображением я работаю на панели через @override 

Код

JPanel panel = new JPanel(){
            @Override
            public void paintComponent(final Graphics g) {
                super.paintComponent(g);
                                   ...................


А если сделать вместо this - null, то изображение не появляется вообще

Это сообщение отредактировал(а) darkvivi - 31.10.2013, 12:18
PM MAIL   Вверх
Mirkes
Дата 31.10.2013, 16:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Довольно странный эффект. Я недавно возился с drawImage и та версия метода, которую Вы используете должна спокойно работать с null если образ готов.
Кстати, приведите текст painComponent целиком. Может собака где-то там зарыта smile


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


Шустрый
*


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

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



Вот весь код smile

Код

JPanel showpanel = new JPanel(){
            @Override
            public void paintComponent(final Graphics g) {
                super.paintComponent(g);
                // g.setColor(Color.BLUE);
                // g.fillRect(0, 0, 100, 100);
                //for (int j = 0; j<20; j++){
            //      final int key = 0;
            /*     BufferedImage scaled = new BufferedImage(scaledWidth, scaledHeight,
                            BufferedImage.TYPE_INT_RGB);
                    Graphics2D g = scaled.createGraphics();
                    g.drawImage(originalImage, 0, 0, scaledWidth, scaledHeight, null);
                    g.dispose();
                  
                    ImageIO.write(scaled, "JPEG", new File("1.jpg"));
                */
        //Thread thr = new Thread();
                //key = 0;
                 scaled[key] = theseimages[key].getScaledInstance(200,
                        200, Image.SCALE_REPLICATE);
        g.drawImage(scaled[key], 100,500, this);
        //repaint();
        //g.dispose();
    //    repaint();
        
    
                
                
                
                g.drawImage(theseimages[key], 500, 500, null); //Сюда нужно уменьшенную версию!
                g.drawImage(theseimages[key+1], 600, 500, null);
        g.drawImage(theseimages[key+2], 700, 500, null);
            g.drawImage(theseimages[key+3], 800, 500, null);
                //g.drawImage(theseimages[key+4], 900, 500, null);
                JButton right = new JButton ("|>");
                JButton left = new JButton ("<|");
                left.setBounds(400,500,100,20);
                right.setBounds(850,500,100,20);
                add(right);
                add(left);
                left.addActionListener(new ActionListener() {
                    public void actionPerformed(ActionEvent e) {
                //ёж
                        try {
                            //j=j+1;
                        //    iteration();
                            if (key>0){
                            key=key-1;
                            }
                            System.out.println(key);
                            
                            Image scaled[key] = theseimages[key].getScaledInstance(200,
                                        200, Image.SCALE_SMOOTH);
                        g.drawImage(scaled[key], 100, 500, null);
                            
                            
                            //g.drawImage(theseimages[key], 500, 500, null); //Сюда нужно уменьшенную версию!
                            g.drawImage(theseimages[key+1], 600, 500, null);
                            g.drawImage(theseimages[key+2], 700, 500, null);
                            g.drawImage(theseimages[key+3], 800, 500, null);
                            repaint();
                        // changeframe.setVisible(false);
                        } catch (Exception e1) {
                            // TODO Auto-generated catch block
                            e1.printStackTrace();
                        }
                    }
                    });
                
                right.addActionListener(new ActionListener() {
                    public void actionPerformed(ActionEvent e) {
                //ёж
                        try {
                            //j=j+1;
                        //    iteration();
                            key=key+1;
                            System.out.println(key);
                             scaled[key] = theseimages[key].getScaledInstance(100,
                                        100, Image.SCALE_SMOOTH);
                             //g.drawImage(scaled[key], 100,500, null);
                        
                            g.drawImage(theseimages[key], 500, 500, null); //Сюда нужно уменьшенную версию!
                            g.drawImage(theseimages[key+1], 600, 500, null);
                            g.drawImage(theseimages[key+2], 700, 500, null);
                            g.drawImage(theseimages[key+3], 800, 500, null);
                            
                            
                            repaint();
                        // changeframe.setVisible(false);
                        } catch (Exception e1) {
                            // TODO Auto-generated catch block
                            e1.printStackTrace();
                        }
                    }
                    });
                
                //}
                System.out.println("DRAW");
                //ImageIcon icon = new ImageIcon(image);
                //theseimages[j]
                
            }
        };

может нужно g.dispose() использовать?

 Решил оставить только 
Код

JPanel showpanel = new JPanel(){
            @Override
            public void paintComponent(final Graphics g) {
                super.paintComponent(g);
scaled[key] = theseimages[key].getScaledInstance(200,
                        200, Image.SCALE_SMOOTH);        
        g.drawImage(scaled[key], 100,500, null);
            }    
        };


Изображение стало мигать чаще...раз в 10 секунд где-то...


Это сообщение отредактировал(а) darkvivi - 31.10.2013, 16:51
PM MAIL   Вверх
Mirkes
Дата 1.11.2013, 02:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



А что у Вас творится с приложением, что форма 10 раз в секунду перерисовывается?


--------------------
Mirkes
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.0723 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


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

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