Вывести изображение BufferedImage на JPanel - Java

Узнай цену своей работы

Формулировка задачи:

Здравствуйте! Подскажите, пожалуйста, как вывести изображение из BufferedImage на JPanel. Написал вот такую прогу чтобы разобраться, но, увы, не получилось :-(
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JScrollPane;
 
public class TestFrame extends JFrame {
     
    public static void createGUI() {
        //**********************Меню****************************
        JFrame frame = new JFrame("Test frame");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLayout(null) ;
        frame.setVisible(true);
        Font font = new Font("Verdana", Font.PLAIN, 11);
         
        JMenuBar menuBar = new JMenuBar();
         
        JMenu fileMenu = new JMenu("Файл");
        fileMenu.setFont(font);
         
        JMenuItem newMenu = new JMenuItem("Отобразить");
        newMenu.setFont(font);
        fileMenu.add(newMenu);
       
        JMenuItem exitItem = new JMenuItem("Выход");
        exitItem.setFont(font);
        fileMenu.add(exitItem);
        
        //***************************************************
        TestFrame myPanel = new TestFrame();
        myPanel.setLayout(new BorderLayout());
        myPanel.setPreferredSize(new Dimension(600, 400));
        //***************************************************

      //**********************Нажатие кнопок****************************
        
        newMenu.addActionListener(new ActionListener() {           
            public void actionPerformed(ActionEvent e) {
                
                //Graphics g = bufferImage.getGraphics();
                //Попытался вытянуть как-нибудь из класса GetImage:
                //g.drawImage(GetImage.OutputToScrn(img), 0, 0, this);
                //Попытался "обновить" чтобы отображалось сразу:
                //revalidate();
                //repaint();
                //}           
            }           
        });
        
        exitItem.addActionListener(new ActionListener() {           
            public void actionPerformed(ActionEvent e) {
                System.exit(0);             
            }           
        });
          
        menuBar.add(fileMenu);       
        frame.setJMenuBar(menuBar);
        frame.setPreferredSize(new Dimension(650, 450));
        frame.pack();
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
    }
 
    public static void main(String[] args) {
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                createGUI();
            }
        });
    }
}
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
 
public class GetImage {
    //Здесь, для примера, записывает из файла изображения
    public static BufferedImage OutputToScrn(){
        BufferedImage img = null;
        try {
            img = ImageIO.read(new File("D:\\work\\files\\logo.jpg"));
        } catch (IOException e) {
            e.printStackTrace();
        }
        return img;
    }   
}

Решение задачи: «Вывести изображение BufferedImage на JPanel»

textual
Листинг программы
import java.awt.Graphics;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
 
public class MyGetImage {
    public static BufferedImage OutputToScrn(BufferedImage img){
        BufferedImage image = null;
        try {
            image = ImageIO.read(new File("airplane.bmp"));
        } catch (IOException e) {
            e.printStackTrace();
        }
        return image;
    }
        
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.375 из 5