/**
* Class untuk komponen Swing yang dapat menampilkan OFImage.
* Dibuat sebagai subclass JComponent
* fungsionalitas pengaturan OFImage.
*
* @author Ghifari A.U
*
*/
import java.awt.*;
import javax.swing.*;
import java.awt.image.*;
public class ImagePanel extends JComponent
{
// Lebar dan tinggi panel saat ini
private int width, height;
// Internal image buffer untuk painting, ditampilkan di screen.
private OFImage panelImage;
public ImagePanel()
{
width = 360; // Ukuran panel
height = 240;
panelImage = null;
}
public void setImage(OFImage image)
{
if (image != null)
{
width = image.getWidth();
height = image.getHeight();
panelImage = image;
repaint();
}
}
public void clearImage()
{
Graphics imageGraphics = panelImage.getGraphics();
imageGraphics.setColor(Color.LIGHT_GRAY);
imageGraphics.fillRect(0, 0, width, height);
repaint();
}
// Method di bawah untuk mendefinisikan ulang
// method warisan dari superclass.
public Dimension getPreferredSize()
{
return new Dimension(width, height);
}
public void paintComponent(Graphics g)
{
Dimension size = getSize();
g.clearRect(0, 0, size.width, size.height);
if (panelImage != null)
{
g.drawImage(panelImage, 0, 0, null);
}
}
}