minos5000
2007-08-13, 21:59:24
Hi,
im folgenden einmal das Codestück, das die Anzeige des Bildes in dem Frame bewirken soll:
public class ImageComponent extends JComponent {
private Image image;
public ImageComponent(Image image) {
this.image = image;
}
public void paintComponent(Graphics g) {
g.drawImage(image,0,0,null);
}
}
public class Gui extends JFrame {
...
private void openMenuItemActionPerformed(java.awt.event.ActionEvent evt) {
FileNameExtensionFilter filter = new FileNameExtensionFilter("JPG & GIF Images", "jpg", "gif");
jFileChooser1.setFileFilter(filter);
int returnVal = jFileChooser1.showOpenDialog(Gui.this);
if(returnVal == jFileChooser1.APPROVE_OPTION) {
selectedFile = jFileChooser1.getSelectedFile().getPath();
}
File imageFile = new File(selectedFile);
try {
Image image = ImageIO.read(new File(selectedFile));
ImageComponent imageComponent = new ImageComponent(image);
Graphics g = Gui.this.getGraphics();
g.drawImage(image,640,480,Gui.this);
//Gui.this.getContentPane().add(imageComponent);
//Gui.this.getContentPane().validate();
} catch(IOException e) {
System.out.println(e.toString());
}
}
...
}
Ich hatte die Anzeige mal mit den beiden auskommentierten "getContentPane()"-Befehlen versucht, aber das hat leider auch nicht funktioniert. Seltsamerweise gings, wenn ich einen neuen Frame erstelle und dem vor dem Anzeigen mit getContentPane die ImageComponent anhänge.
Eine Lösung die ich gefunden habe macht das z.B. mit einem JLabel, dem als Icon das entsprechende Bild übergeben wird, aber das muß doch auch anders zu machen sein.
Ciao,
minos
im folgenden einmal das Codestück, das die Anzeige des Bildes in dem Frame bewirken soll:
public class ImageComponent extends JComponent {
private Image image;
public ImageComponent(Image image) {
this.image = image;
}
public void paintComponent(Graphics g) {
g.drawImage(image,0,0,null);
}
}
public class Gui extends JFrame {
...
private void openMenuItemActionPerformed(java.awt.event.ActionEvent evt) {
FileNameExtensionFilter filter = new FileNameExtensionFilter("JPG & GIF Images", "jpg", "gif");
jFileChooser1.setFileFilter(filter);
int returnVal = jFileChooser1.showOpenDialog(Gui.this);
if(returnVal == jFileChooser1.APPROVE_OPTION) {
selectedFile = jFileChooser1.getSelectedFile().getPath();
}
File imageFile = new File(selectedFile);
try {
Image image = ImageIO.read(new File(selectedFile));
ImageComponent imageComponent = new ImageComponent(image);
Graphics g = Gui.this.getGraphics();
g.drawImage(image,640,480,Gui.this);
//Gui.this.getContentPane().add(imageComponent);
//Gui.this.getContentPane().validate();
} catch(IOException e) {
System.out.println(e.toString());
}
}
...
}
Ich hatte die Anzeige mal mit den beiden auskommentierten "getContentPane()"-Befehlen versucht, aber das hat leider auch nicht funktioniert. Seltsamerweise gings, wenn ich einen neuen Frame erstelle und dem vor dem Anzeigen mit getContentPane die ImageComponent anhänge.
Eine Lösung die ich gefunden habe macht das z.B. mit einem JLabel, dem als Icon das entsprechende Bild übergeben wird, aber das muß doch auch anders zu machen sein.
Ciao,
minos