Hi,
ich möchte in einem Programm Bilder manipulieren können.
Dazu soll es möglich sein, ein leeres Bild zu erstellen bzw. ein vorhandenes einzulesen. Das klappt momentan auch, allerdings habe ich große Probleme mit dem Anzeigen!
setImage nimmt entweder ein Image-Objekt oder eine Datei an.
Ein Objekt der oben geposteten Klasse habe ich direkt auf meinen JFrame geklatscht. Ein Layoutmanager wird vorerst nicht benutzt, um das schonmal als Fehlerquelle auszuschließen.
Das Problem ist jetzt, dass das Bild nicht angezeigt wird, wenn setImage() ausgeführt wurde. Es wird erst angezeigt, wenn ich das Fenster manuell größer ziehe.
Weiß jemand, wie ich es hinbekomme, dass das Bild automatisch in voller Größe angezeigt wird?
MfG
Simon
ich möchte in einem Programm Bilder manipulieren können.
Dazu soll es möglich sein, ein leeres Bild zu erstellen bzw. ein vorhandenes einzulesen. Das klappt momentan auch, allerdings habe ich große Probleme mit dem Anzeigen!
Code:
import java.awt.Dimension; import java.awt.Graphics; import java.awt.Image; import java.awt.Toolkit; import java.io.File; import javax.swing.JComponent; import javax.swing.JPanel; class ViewPanel extends JPanel { private Image image; public void setImage( File file ) { image = Toolkit.getDefaultToolkit().getImage( file.getAbsolutePath() ); if ( image != null ) { this.setPreferredSize(new Dimension(this.image.getWidth(null), this.image.getHeight(null))); this.setSize(new Dimension(this.image.getWidth(null), this.image.getHeight(null))); repaint(); } } public void setImage(Image img) { if(img != null) { this.image = img; this.setPreferredSize(new Dimension(this.image.getWidth(null), this.image.getHeight(null))); this.setSize(new Dimension(this.image.getWidth(null), this.image.getHeight(null))); } else { System.out.println("no"); } this.repaint(); } public Image getImage() { return this.image; } protected void paintComponent( Graphics g ) { if ( image != null ) g.drawImage( image, 0, 0, image.getWidth(null), image.getHeight(null), this ); } }
Ein Objekt der oben geposteten Klasse habe ich direkt auf meinen JFrame geklatscht. Ein Layoutmanager wird vorerst nicht benutzt, um das schonmal als Fehlerquelle auszuschließen.
Das Problem ist jetzt, dass das Bild nicht angezeigt wird, wenn setImage() ausgeführt wurde. Es wird erst angezeigt, wenn ich das Fenster manuell größer ziehe.
Weiß jemand, wie ich es hinbekomme, dass das Bild automatisch in voller Größe angezeigt wird?
MfG
Simon
Kommentar