Hallo,
ich habe einen Frame, dieser Frame hat ein Panel, dieses panel soll ein Bild anzeigen welches ich mit einem File Dialog einlese.
Das Bild wird eingelesen, wenn ich das Panel verdecke wird paint auch aufgerufen, mir wird aber nichts angezeigt. Weiss jemand wo der Fehler liegt?
ich habe einen Frame, dieser Frame hat ein Panel, dieses panel soll ein Bild anzeigen welches ich mit einem File Dialog einlese.
Das Bild wird eingelesen, wenn ich das Panel verdecke wird paint auch aufgerufen, mir wird aber nichts angezeigt. Weiss jemand wo der Fehler liegt?
Java:
import java.awt.*;
import java.awt.image.*;
import java.awt.event.*;
class grafisch extends Frame{
public grafisch(){
super("");
setLayout(new BorderLayout());
final test18 a=new test18(this);
Panel pan=new Panel();
pan.setLayout(new BorderLayout());
pan.add(BorderLayout.CENTER,a);
add(BorderLayout.CENTER,pan);
setSize(500,500);
setVisible(true);
pan.setVisible(true);
}
public void update(Graphics g){
paint(g);
}
}
public class test18 extends Component{
Image img;
Image img2;
final int H=500;
final int W=500;
int[] pix2grab=new int[W*H];
int[] pix2draw=new int[W*H];
MemoryImageSource msrc;
public test18 (Frame f){
try{
FileDialog fd=new FileDialog(f);
fd.setVisible(true);
img=getToolkit().getImage(fd.getDirectory()+fd.getFile()).getScaledInstance(W,H,Image.SCALE_SMOOTH);
fd.setFile("");
MediaTracker mt=new MediaTracker(this);
mt.addImage(img,0);
mt.waitForAll();
PixelGrabber grab=new PixelGrabber(img,0,0,W,H,pix2grab,0,W);
grab.grabPixels();
// for(int i=0;i<129381;++i)
// System.out.println(pix2grab[i]);
msrc= new MemoryImageSource(W,H,pix2draw,0,W);
img=createImage(msrc);
img.flush();
}
catch(InterruptedException e){System.out.println(e);}
}
public Dimension getPrederredSize(){
return getMinimumSize();
}
public Dimension getMinimumSize(){
return new Dimension(W,H);
}
public void paint(Graphics g){
System.out.println("bin hier"+img);
g.drawImage(img,0,0,this);
}
public void update(Graphics g){
paint(g);
}
public static void main(String[] args){
new grafisch();
}
}