Moin,
ich verstehe nicht, weshalb mein skaliertes Image nicht gezeichnet wird.
Zur Information: ImageComponent ist eine JComponent, die ein Image hält und dieses in der paint()-Methode via drawImage zeichnet. Hat jemand eine Idee, wo der Denkfehler liegt?
jPanel_image_preview.removeAll();
jPanel_image_preview.repaint();
if(fileName.exists()){
try{
ImageComponent imageComponent = new ImageHandler().getImageComponent(fileName);
Image imageScaled;
// Herunterskalieren auf 250 max Breite oder Höhe
Image image = imageComponent.getImage();
int iImageWidth = (int)image.getWidth(null);
int iImageHeight = (int)image.getHeight(null);
double dScaleFactor = 1.0;
if ( (iImageHeight > IMAGE_LIMIT) || (iImageWidth > IMAGE_LIMIT)) {
if (iImageHeight > iImageWidth) {
dScaleFactor = (double)iImageHeight / (double)IMAGE_LIMIT;
} else {
dScaleFactor = (double)iImageWidth / (double)IMAGE_LIMIT;
}
int iNewWidth = (int) ((double)iImageWidth / dScaleFactor);
int iNewHeight = (int)((double)iImageHeight / dScaleFactor);
imageScaled = image.getScaledInstance( iNewWidth, iNewHeight, Image.SCALE_DEFAULT);
} else {
imageScaled = image.getScaledInstance(IMAGE_LIMIT,IMAGE_LIMIT, Image.SCALE_DEFAULT);
}
jPanel_image_preview.add(new ImageComponent(imageScaled));
}catch(IOException ex){
ex.printStackTrace();
}
}
}