Impressum | Kontakt
 Startseite | Kurse | Projekte Haskell | Linux | Suche | Blog

PNMImageComponent - Anzeigekomponente für PNM-Bilder

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);