Форум программистов, компьютерный форум, киберфорум
Java: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.68/34: Рейтинг темы: голосов - 34, средняя оценка - 4.68
1 / 1 / 0
Регистрация: 24.02.2013
Сообщений: 22

BufferedImage

24.02.2013, 17:28. Показов 6286. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день! Уверен что об этом уже писалось, но, не судите строго, у меня проблема немного специфического характера. Вопрос вот в чем:
Совсем недавно я сделал прогу для вывода изображения на форму, и она в первое время работала, но потом в силу необходимости доработки проги я изменил код и она перестала работать... Теперь даже делаю с нуля и не хочет работать... может я че то упустил, хз...
Вот код:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import java.awt.*; 
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage; 
import java.io.*; 
 
import javax.imageio.ImageIO; 
import javax.swing.Box;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame; 
import javax.swing.JPanel;
public class proba { 
    private static final long serialVersionUID = 1L;
        
    BufferedImage image;
    
    proba() throws IOException
    {
        image=ImageIO.read(new File("src/pic.jpeg"));
    }
    
    public void paint ( Graphics g ) { 
        //Image image=new ImageIcon("D:/Дипломна/eclipse/Prog_h_01/src/pic.jpeg").getImage();
        g.drawImage ( image, 0 , 0 , null ) ;
        
    }
    
    public static void main ( String args []){ 
        JFrame frame = new JFrame ( "Display image" ) ;
        JPanel panel=new JPanel();
        frame.getContentPane () ; 
        frame.setSize ( 300,300 ) ; 
        frame.setVisible ( true ) ; 
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().add(panel);
    } 
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.02.2013, 17:28
Ответы с готовыми решениями:

BufferedImage
Есть программа, которая рисует по JPanel, имитация карандаша, также собираюсь добавить линию, эллипс, квадрат и прочее... Как реализовать...

Изменение BufferedImage
Всем привет! Вопрос: как изменить цвет объекта Image или BufferedImage? Делал так: for (int i = 0; i < image.getWidth(); i++) {...

Не выводиться BufferedImage
Вот код: import java.applet.Applet; import java.awt.Canvas; import java.awt.Color; import java.awt.Graphics; import...

10
 Аватар для MILAN
899 / 793 / 186
Регистрация: 21.02.2009
Сообщений: 1,722
24.02.2013, 17:40
А что конкретно не так? Может ошыбки какие?
1
1 / 1 / 0
Регистрация: 24.02.2013
Сообщений: 22
24.02.2013, 19:23  [ТС]
Цитата Сообщение от MILAN Посмотреть сообщение
А что конкретно не так? Может ошыбки какие?
Нет, просто пустая форма... путь к изображению прописывал по разному, в т. ч. и полные пути, и .bmp и .jpeg пробовал... И даже другой способ где от розкопал, тот что закомментированный, результат один и тот же(
0
 Аватар для MILAN
899 / 793 / 186
Регистрация: 21.02.2009
Сообщений: 1,722
24.02.2013, 20:27
А с чего вы взяли, что на вашей форме должно что-то рисоваться?
1
1 / 1 / 0
Регистрация: 24.02.2013
Сообщений: 22
24.02.2013, 21:36  [ТС]
Цитата Сообщение от MILAN Посмотреть сообщение
А с чего вы взяли, что на вашей форме должно что-то рисоваться?
"g.drawImage ( image, 0 , 0 , null ) ;" что то как бы должен делать...

Ну как бы там ни было просто скажыте плиз в чем ошыбка...
0
 Аватар для MILAN
899 / 793 / 186
Регистрация: 21.02.2009
Сообщений: 1,722
24.02.2013, 21:44
Для того, чтобы отрисовать что-то на панели, нужно переопределить метод paintComponent(Graphics g) класса JPanel(или точнее JComponent), и в нем собственно вызывать то, что вы вызываете в своем методе paint(Graphics).
1
1 / 1 / 0
Регистрация: 24.02.2013
Сообщений: 22
24.02.2013, 21:59  [ТС]
А я ж забыл предупредить что я начинающий) Можете написать пример кода, плиз...

И вот еще что я нашел:
"Базовый компонент JComponent и механизм отрисовки.
Все компоненты Swing наследуются от JComponent. Этот базовый класс реализует механизм отрисовки легковесных компонентов.

Процесс отрисовки компонента начинается с вызова операционной системой метода paint() тяжеловесного компонента. Далее, вызов метода paint() происходит для всех вложенных в него компонентов.

Как бы не чесались руки, переопределить метод paint, делать этого не стоит!"
0
 Аватар для MILAN
899 / 793 / 186
Регистрация: 21.02.2009
Сообщений: 1,722
24.02.2013, 22:25
Smailuk,
Цитата Сообщение от Smailuk Посмотреть сообщение
Как бы не чесались руки, переопределить метод paint, делать этого не стоит!"
Не понимаю, к чему это ?
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package Test;
 
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
 
import javax.imageio.ImageIO;
import javax.swing.JFrame;
 
public class Test {
    
    public static void main(String[] args) throws IOException {
        JFrame testFrame = new JFrame("Display image"); 
        BufferedImage image = ImageIO.read(new File("path to image file"));
        TestPanel testPanel = new TestPanel(image);
        testFrame.setSize(300,300); 
        testFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        testFrame.add(testPanel);
        testFrame.setVisible(true); 
    }
}
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package Test;
 
import java.awt.Graphics;
import java.awt.image.BufferedImage;
 
import javax.swing.JPanel;
 
public class TestPanel extends JPanel {
    private BufferedImage image;
    
    public TestPanel(BufferedImage image) {
        this.image = image;
    }
    
    @Override
    public void paintComponent(Graphics g) {
        if(image != null) {
            g.drawImage(image, 0, 0, null);
        }
    }
}
1
1 / 1 / 0
Регистрация: 24.02.2013
Сообщений: 22
24.02.2013, 22:28  [ТС]
Вот что я понемногу нарыл:
public void paint(Graphics g) {
super.paint(g);
g.drawImage(image, 0, 0, null);
}
Как бы так переопределяется, но не помогло...
0
 Аватар для Drygba
512 / 454 / 119
Регистрация: 17.02.2012
Сообщений: 1,032
Записей в блоге: 1
25.02.2013, 10:58
1
1 / 1 / 0
Регистрация: 24.02.2013
Сообщений: 22
26.02.2013, 00:04  [ТС]
Цитата Сообщение от Drygba Посмотреть сообщение
читать
Очень большое спасибо - интересная и полезная статья, как раз кстати!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.02.2013, 00:04
Помогаю со студенческими работами здесь

Не работает BufferedImage
Здравствуйте. Делаю Paint на Java, столкнулся со следующей проблемой: когда меняются размеры окна или окно сворачивается, то весь рисунок,...

Рисование BufferedImage на Panel
import java.awt.BorderLayout; import java.awt.Color; import java.awt.Frame; import java.awt.Panel; import...

Вывести изображение BufferedImage на JPanel
Здравствуйте! Подскажите, пожалуйста, как вывести изображение из BufferedImage на JPanel. Написал вот такую прогу чтобы разобраться, но,...

Как с BufferedImage открыть рисунок и отобразить на JFrame
прочитать рисунок могу, а отобразить на JFrame или на панели не получается, JLabel не подходит.

Как привести изображение созданное на JPanel через Graphics2D к BufferedImage
Второй день ломаю голову и похоже что то упускаю: На JFrame создана JPanel(сanvasPanel), на панели через Graphics2D мышкой рисую линии ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru