ImagePanel.java Source code

Java tutorial

Introduction

Here is the source code for ImagePanel.java

Source

//   ImagePanel
//
//   Copyright (C) by Andrea Carboni.
//   This file may be distributed under the terms of the LGPL license.
//

import java.awt.Dimension;
import java.awt.Graphics;

import javax.swing.ImageIcon;
import javax.swing.JPanel;

public class ImagePanel extends JPanel {
    private ImageIcon image = new ImageIcon();
    private int margin = 0;

    //---------------------------------------------------------------------------

    public ImagePanel() {
    }

    //---------------------------------------------------------------------------

    public ImagePanel(String imageFile) {
        setImage(imageFile);
    }

    //---------------------------------------------------------------------------

    public void setImage(String imageFile) {
        image = new ImageIcon(imageFile);

        updatePrefSize();
    }

    //---------------------------------------------------------------------------

    public void setMargin(int m) {
        margin = m;

        updatePrefSize();
    }

    //---------------------------------------------------------------------------
    //---
    //---   Internal methods
    //---
    //---------------------------------------------------------------------------

    public void paintComponent(Graphics g) {
        super.paintComponent(g);

        if (image.getImage() != null)
            g.drawImage(image.getImage(), margin, margin, this);
    }

    //---------------------------------------------------------------------------

    private void updatePrefSize() {
        int iw = image.getIconWidth();
        int ih = image.getIconHeight();

        setPreferredSize(new Dimension(iw + margin * 2, ih + margin * 2));
    }
}