Die Anzeige eines Bildes soll auf einem JPanel erfolgen. Dazu erweitert die Klasse PNMImageComponent die Klasse JComponent, so dass diese Komponente später auf einem JPanel montiert werden kann.
public class PNMImageComponent extends JComponent {
private BufferedImage img;
// Konstruktor: Das Bild img wird angezeigt
public PNMImageComponent(BufferedImage img) {
super();
this.img = img;
this.setPreferredSize(new Dimension(img.getWidth(),img.getHeight()));
}
// Das Bild wird überschrieben
// Die Bildabmessungen sind dieselben
protected void setImage(BufferedImage img) {
this.img = img;
repaint();
}
//@Override
protected void paintComponent( Graphics g ) {
if ( img != null )
g.drawImage( img, 10, 10, this );
}
}
In einem GUI kann dieses Komponente dann eingebunden werden:
// Bildinstanz erzeugen
PBM originalbild = new PBM("einstein.pbm");
// Anzeigekompoente erzeugen und einem Panel hinzufügen
PNMImageComponent img = new PNMImageComponent(originalbild.getImage());
panel.add(img);