package com.jds.swing;
import javax.swing.*;
import java.awt.*;
import java.awt.image.BufferedImage;
/**
* User: VISTALL
* I not a author. @author Rebellion
* Company: J Develop Station
* Date: 31.08.2009
* Time: 22:04:42
*/
public class JPicturePanel extends JPanel
{
private BufferedImage originalImage;
private Image image;
public JPicturePanel()
{
initComponents();
}
private void initComponents()
{
setLayout(null);
addComponentListener(new java.awt.event.ComponentAdapter()
{
@Override
public void componentResized(java.awt.event.ComponentEvent evt)
{
formComponentResized();
}
});
}
private void formComponentResized()
{
int w = this.getWidth();
int h = this.getHeight();
if ((originalImage != null) && (w > 0) && (h > 0))
{
image = originalImage.getScaledInstance(w, h, getScalingMode());
image.flush();
repaint();
}
}
@Override
public void paint(Graphics g)
{
if (image != null)
{
g.drawImage(image, 0, 0, null);
}
super.paintChildren(g);
super.paintBorder(g);
}
public BufferedImage getImage()
{
return originalImage;
}
public void setImage(BufferedImage image)
{
originalImage = image;
int w = this.getWidth();
int h = this.getHeight();
if ((originalImage != null) && (w > 0) && (h > 0))
{
this.image = originalImage.getScaledInstance(w, h, getScalingMode());
getParent().repaint();
originalImage.flush();
}
}
public Dimension getImageSize()
{
if (originalImage == null)
{
return new Dimension();
}
return new Dimension(originalImage.getWidth(), originalImage.getHeight());
}
public void setValidPreferredSize(Dimension d)
{
setPreferredSize(d);
d = new Dimension(d);
d.setSize(d.getWidth() + 19, d.getHeight() + 19);
getParent().setPreferredSize(d);
}
public Image getPaintedImage()
{
return image;
}
private int getScalingMode()
{
return Image.SCALE_DEFAULT;
}
}