Аватар для Yamaneko
7 / 7 / 5
Регистрация: 10.05.2013
Сообщений: 90

Вывести bmp изображение в JPanel

13.10.2013, 15:33. Показов 5725. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приведите, пожалуйста, пример кода, как выводить bmp изображение на JPanel и потом на JFrame.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.10.2013, 15:33
Ответы с готовыми решениями:

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

Стирается изображение в jPanel
Добрый вечер. Уже долгое время не получается оставить изображение на jPanel после его свертывания или перекрытия его другими окнами....

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

9
 Аватар для name?
201 / 172 / 52
Регистрация: 01.06.2010
Сообщений: 371
13.10.2013, 16:51
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
40
41
42
43
44
45
46
import java.awt.Graphics;
import java.awt.Image;
import java.io.File;
import java.io.IOException;
 
import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JPanel;
 
public class Game extends JPanel {
 
 
    
    public static final String NAME = "Title Game";
    public static final int WIDTH = 490;
    public static final int HEIGHT = 450;
    private Image image;
 
    public Game() {
        loadImage();
    }
    private void loadImage() {
        try {
            image = ImageIO.read(new File("picture\\picture.bmp"));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
        public void paint(Graphics g) {
           g.drawImage(image, 0, 0, null);
        }
 
 
 
    public static void main(String[] args){
        Game game = new Game();
        game.setSize(WIDTH, HEIGHT);
        JFrame frame = new JFrame(NAME);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(WIDTH, HEIGHT);
        frame.add(game);
        frame.setVisible(true);
 
        
    }
}
2
 Аватар для Yamaneko
7 / 7 / 5
Регистрация: 10.05.2013
Сообщений: 90
13.10.2013, 19:46  [ТС]
name?, спасибо. А ещё такой вопрос: возможно ли это сделать вспомогательным классом, без JFrame, и добавить в коробку, которую потом вставить в главный класс?

Добавлено через 45 минут
И ещё один вопрос: можно ли через JLabel открыть *.bmp файл?
0
 Аватар для name?
201 / 172 / 52
Регистрация: 01.06.2010
Сообщений: 371
13.10.2013, 22:53
1. можно
2. тыц
1
 Аватар для Yamaneko
7 / 7 / 5
Регистрация: 10.05.2013
Сообщений: 90
14.10.2013, 00:04  [ТС]
name?,
Цитата Сообщение от Yamaneko Посмотреть сообщение
через JLabel открыть *.bmp файл?
Можно пример этого?

Добавлено через 9 минут
У меня просто что-то вроде такого написано
Java
1
2
 ImageIcon icon2 = new ImageIcon("formula2.jpg");
    JLabel imgLabel = new JLabel(icon1);
и *.bmp изображения просто не выводятся.
0
 Аватар для name?
201 / 172 / 52
Регистрация: 01.06.2010
Сообщений: 371
14.10.2013, 00:11
Java
1
2
3
4
Image image = ImageIO.read(imageFile);
ImageIcon icon = new ImageIcon(image);
 
JLabel label = new JLabel(icon);
1
 Аватар для Yamaneko
7 / 7 / 5
Регистрация: 10.05.2013
Сообщений: 90
14.10.2013, 00:29  [ТС]
name?,
Java
1
icon1.setImage(image1);
Почему-то при выполнении программы, в этой строчке выдаёт ошибку.
0
 Аватар для name?
201 / 172 / 52
Регистрация: 01.06.2010
Сообщений: 371
14.10.2013, 00:52
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
 
 
public class Game extends JPanel {
  
    public static final String NAME = "name?";
    public static final int WIDTH = 490;
    public static final int HEIGHT = 450;
 
    public Game() {
        loadImage();
    }
 
 
    Image image;
    
    private void loadImage() {
        try {
            image = ImageIO.read(new File("picture\\picture.bmp"));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    
 
    public static void main(String[] args) {
        Game game = new Game();
        game.setSize(WIDTH, HEIGHT);
        JFrame frame = new JFrame(NAME);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(WIDTH, HEIGHT);
        frame.add(game);
        frame.setVisible(true);
 
        ImageIcon icon = new ImageIcon(game.image);
 
        JLabel label = new JLabel(icon);
        frame.add(label);
    }
}
0
 Аватар для Yamaneko
7 / 7 / 5
Регистрация: 10.05.2013
Сообщений: 90
14.10.2013, 01:00  [ТС]
name?, мне нужно немножко не так. Изначально ImageIcon объявлена в public class. И в нём же находится функция, которая по изменеию RadioButton меняет изображение, и, как я понял, если писать loadImage функцией, то это немного не понятно, как можно реализовать. А в той строчке выдаёт NullPointerException. Могу предоставить код, если это поможет
0
 Аватар для name?
201 / 172 / 52
Регистрация: 01.06.2010
Сообщений: 371
14.10.2013, 01:41
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
public class Game extends JPanel implements ActionListener {
 
    String[] fontArray = { "image1", "image2" };
 
    JRadioButton[] rButton = new JRadioButton[fontArray.length];
    Image image;
    JLabel label;
    ImageIcon icon;
 
    public Game() {
 
        setLayout(new FlowLayout());
        try {
            image = ImageIO.read(new File("picture\\1.png"));
        } catch (IOException e) {
            e.printStackTrace();
        }
        for (int i = 0; i < rButton.length; i++) {
            rButton[i] = new JRadioButton();
            rButton[i].setText(fontArray[i]);
            rButton[i].addActionListener(this);
            add(rButton[i]);
        }
 
        icon = new ImageIcon(image);
        label = new JLabel(icon);
        add(label);
 
    }
 
    @Override
    public void actionPerformed(ActionEvent e) {
        loadImage();
        icon = new ImageIcon(image);
        label.setIcon(icon);
 
    }
 
    public static void main(String[] args) {
        Game panel = new Game();
        JFrame frame = new JFrame();
        frame.getContentPane().add(panel);
        frame.setSize(400, 300);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }
 
 
    private void loadImage() {
        try {
            if (rButton[0].isSelected())
                image = ImageIO.read(new File("picture\\picture.bmp"));
            if (rButton[1].isSelected())
                image = ImageIO.read(new File("picture\\1.png"));
 
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
 
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.10.2013, 01:41
Помогаю со студенческими работами здесь

Добавление JPanel на JPanel, не отображаются те, которые добавлены сверху
Здравствуйте. У меня есть панель fon на которой у меня картинка с фоном и 15 панелей на которых нарисованы шарики,пытаюсь добавить панели с...

Как правильно задать размер JPanel чтобы JFrame при pack() сжимался до размеров JPanel
Подскажите как правильно задать размер JPanel чтобы JFrame при pack() сжимался до размеров JPanel, задание размеров при помощи setSize...

Удаление JPanel кнопкой на этом же JPanel
Есть JPanel объекты, которые представляют собой панельки с какой - то информацией, на них есть кнопка. Как сделать так, чтобы при нажатии...

Замена JPanel на JPanel в JFrame
У меня есть 3 класса. Первый класс Main наследуется от JFrame и в конструкторе установка размера и добавление JPanel второго класса....

JPanel panel_south=new JPanel(); JTextArea textArea=new JTextArea(); Где ошибка?
JPanel panel_south=new JPanel(); JTextArea textArea=new JTextArea(); Label label=new JLabel(' '); ...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru