Доброго времени суток! Подскажите, пожалуйста, как вывести изображение из 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 java.awt.image.BufferedImage; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JPanel; import javax.swing.JScrollPane; public class TestFrame extends JFrame { static BufferedImage img = null; 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("Arial", 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); //*************************************************** JPanel myPanel = new JPanel(); myPanel.setLayout(new BorderLayout()); myPanel.setPreferredSize(new Dimension(600, 400)); frame.add(myPanel); //*************************************************** newMenu.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { System.out.println(GetImage.OutputToScrn(img)); //При нажатии этой кнопки меню, должно появиться изображение //Удалил свой код, который был тут т.к. он нерабочий //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< } }); 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){ BufferedImage image = null; try { image = ImageIO.read(new File("D:\\work\\files\\logo.jpg")); } catch (IOException e) { e.printStackTrace(); } return image; } }
|
|