Hallo
habe JDesktopPane in die diese extends JComponent Klasse geladen wird:
Das ist im prinzip 1:1 kopie aus Javainsel. ich versuche ein Bild zu laden, was leider nicht klappt. Habe schon überall ausgaben und try...catch eingebaut.
"setBild" wird vom ActionListener nach JFileChooser aufgerufen. Im Code habe ich die Ausgaben kommentiert.
was habe ich falsch gemacht?
habe JDesktopPane in die diese extends JComponent Klasse geladen wird:
Code:
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import java.io.File;
import javax.swing.JComponent;
public class BildPanel extends JComponent{
static final long serialVersionUID=1222233L;
private Image bild;
public void setBild(File bdatei){
try{
System.out.println("setBild"); //kommt immer korrekt
bild = Toolkit.getDefaultToolkit().getImage( bdatei.getAbsolutePath() );
System.out.println(bild); // kommt immer sowas wie: "sun.awt.image.ToolkitImage@7c3885"
if ( bild != null ){
System.out.println("setBild: bild nicht null"); // kommt immer korrekt
repaint(); // scheint nicht zu existieren, habe schon
//this.repaint() und super.repaint() probiert - nix
}
} catch(Exception e) {
System.out.println("setBild Fehler: "+e.toString()); // kommt nie
}
}
protected void paintComponent( Graphics g )
{
try{
System.out.println("paintComponent"); // kommt 1 mal beim programmstart vor der
// dateiwahl, wo "bild" noch nicht belegt ist
if ( bild != null ){
System.out.println("paintComponent: bild nicht null"); // kommt nie
g.drawImage( bild, 0, 0, this );
}
} catch(Exception e) {
System.out.println("paintComponent Fehler: "+e.toString()); //kommt nie
}
}
}
"setBild" wird vom ActionListener nach JFileChooser aufgerufen. Im Code habe ich die Ausgaben kommentiert.
was habe ich falsch gemacht?