ImageDisplayWindow.java
package eu.javaexperience.image;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import javax.swing.JFrame;
import eu.javaexperience.swing.SwingTools;
public class ImageDisplayWindow
{
protected JFrame frame;
protected BufferedImage image;
protected boolean autoscaleImage = true;
public ImageDisplayWindow()
{
frame = new JFrame()
{
public static final long serialVersionUID = 1L;
public void paint(Graphics g)
{
if(null == image)
{
return;
}
g.setColor(Color.WHITE);
g.fillRect(0, 0, this.getWidth(), this.getHeight());
if(autoscaleImage)
{
Dimension dim = ImageTools.calculateResizeKeepRatioFitIn(image.getWidth(), image.getHeight(), this.getWidth(), this.getHeight());
g.drawImage(image, 0, 30, (int) dim.getWidth(), (int) dim.getHeight()+30, null);
}
else
{
g.drawImage(image, 0, 30, null);
}
}
};
frame.setSize(300, 300);
}
public void show()
{
/*if(null != image)
{
frame.setSize(image.getWidth(), image.getHeight() + 30);
}*/
frame.setVisible(true);
}
public void setBufferedImage(BufferedImage image)
{
this.image = image;
SwingTools.realRepaint(frame);
/*if(null != image)
{
frame.setSize(image.getWidth(), image.getHeight() + 30);
}*/
}
}