Форум программистов, компьютерный форум, киберфорум
Java: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.59/27: Рейтинг темы: голосов - 27, средняя оценка - 4.59
 Аватар для Yamaneko
7 / 7 / 5
Регистрация: 10.05.2013
Сообщений: 90

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

13.10.2013, 15:33. Показов 5723. Ответов 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): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru