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

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

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

Здравствуйте! Подскажите, пожалуйста, как вывести изображение из BufferedImage на JPanel. Написал вот такую прогу чтобы разобраться, но, увы, не получилось :-(
Листинг программы
  1. import java.awt.BorderLayout;
  2. import java.awt.Dimension;
  3. import java.awt.Font;
  4. import java.awt.Graphics;
  5. import java.awt.event.ActionEvent;
  6. import java.awt.event.ActionListener;
  7. import javax.swing.JFrame;
  8. import javax.swing.JMenu;
  9. import javax.swing.JMenuBar;
  10. import javax.swing.JMenuItem;
  11. import javax.swing.JScrollPane;
  12. public class TestFrame extends JFrame {
  13. public static void createGUI() {
  14. //**********************Меню****************************
  15. JFrame frame = new JFrame("Test frame");
  16. frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  17. frame.setLayout(null) ;
  18. frame.setVisible(true);
  19. Font font = new Font("Verdana", Font.PLAIN, 11);
  20. JMenuBar menuBar = new JMenuBar();
  21. JMenu fileMenu = new JMenu("Файл");
  22. fileMenu.setFont(font);
  23. JMenuItem newMenu = new JMenuItem("Отобразить");
  24. newMenu.setFont(font);
  25. fileMenu.add(newMenu);
  26. JMenuItem exitItem = new JMenuItem("Выход");
  27. exitItem.setFont(font);
  28. fileMenu.add(exitItem);
  29. //***************************************************
  30. TestFrame myPanel = new TestFrame();
  31. myPanel.setLayout(new BorderLayout());
  32. myPanel.setPreferredSize(new Dimension(600, 400));
  33. //***************************************************
  34.  
  35. //**********************Нажатие кнопок****************************
  36. newMenu.addActionListener(new ActionListener() {
  37. public void actionPerformed(ActionEvent e) {
  38. //Graphics g = bufferImage.getGraphics();
  39. //Попытался вытянуть как-нибудь из класса GetImage:
  40. //g.drawImage(GetImage.OutputToScrn(img), 0, 0, this);
  41. //Попытался "обновить" чтобы отображалось сразу:
  42. //revalidate();
  43. //repaint();
  44. //}
  45. }
  46. });
  47. exitItem.addActionListener(new ActionListener() {
  48. public void actionPerformed(ActionEvent e) {
  49. System.exit(0);
  50. }
  51. });
  52. menuBar.add(fileMenu);
  53. frame.setJMenuBar(menuBar);
  54. frame.setPreferredSize(new Dimension(650, 450));
  55. frame.pack();
  56. frame.setLocationRelativeTo(null);
  57. frame.setVisible(true);
  58. }
  59. public static void main(String[] args) {
  60. javax.swing.SwingUtilities.invokeLater(new Runnable() {
  61. public void run() {
  62. createGUI();
  63. }
  64. });
  65. }
  66. }
Листинг программы
  1. import java.awt.image.BufferedImage;
  2. import java.io.File;
  3. import java.io.IOException;
  4. import javax.imageio.ImageIO;
  5. public class GetImage {
  6. //Здесь, для примера, записывает из файла изображения
  7. public static BufferedImage OutputToScrn(){
  8. BufferedImage img = null;
  9. try {
  10. img = ImageIO.read(new File("D:\\work\\files\\logo.jpg"));
  11. } catch (IOException e) {
  12. e.printStackTrace();
  13. }
  14. return img;
  15. }
  16. }

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

textual
Листинг программы
  1. import java.awt.Graphics;
  2. import java.awt.Image;
  3. import java.awt.image.BufferedImage;
  4. import java.io.File;
  5. import java.io.IOException;
  6. import javax.imageio.ImageIO;
  7.  
  8. public class MyGetImage {
  9.     public static BufferedImage OutputToScrn(BufferedImage img){
  10.         BufferedImage image = null;
  11.         try {
  12.             image = ImageIO.read(new File("airplane.bmp"));
  13.         } catch (IOException e) {
  14.             e.printStackTrace();
  15.         }
  16.         return image;
  17.     }
  18.        
  19. }

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


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

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

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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут