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