There is no built-in method, but there are several ways to do it. The most straightforward way that I can think of at the moment is:
- Create a subclass of
JComponent
. - Override the
paintComponent(Graphics g)
method to paint the image that you want to display. - Set the content pane of the
JFrame
to be this subclass.
Some sample code:
class ImagePanel extends JComponent { private Image image; public ImagePanel(Image image) { this.image = image; } @Override protected void paintComponent(Graphics g) { super.paintComponent(g); g.drawImage(image, 0, 0, this); } } // elsewhere BufferedImage myImage = ImageIO.read(...); JFrame myJFrame = new JFrame("Image pane"); myJFrame.setContentPane(new ImagePanel(myImage));
Note that this code does not handle resizing the image to fit the JFrame
, if that’s what you wanted.