Вывести изображение 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; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д