Hallo, Ich melde mich mal wieder. Ich möchte ein Bild auf eine feste Größe setzen, die sich dem Hintergrund anpasst.
Ich habe dafür schon eine eigene Klasse geschrieben, die Funktioniert. Nur meine Methode setzeGeschnittenesImg(...) geht nicht. Ich bitte um Hilfe
und mein Aufruf.
Ich habe dafür schon eine eigene Klasse geschrieben, die Funktioniert. Nur meine Methode setzeGeschnittenesImg(...) geht nicht. Ich bitte um Hilfe
Java:
public class ImageComponent extends JComponent { // Bild ist ein Component
private Image img;
public ImageComponent() { // Objekt erstellen
super();
}
public void setzeImg(BufferedImage Bild) { // Bild wählen
this.img = Bild;
setPreferredSize(new Dimension(Bild.getWidth(), Bild.getHeight()));
repaint();
invalidate();
}
public void setzeGeschnittenesImg(BufferedImage Bild, int neueBreite, int neueHöhe) {
this.img = Bild.getScaledInstance(neueBreite, neueHöhe, Image. SCALE_DEFAULT);
System.out.println("M: "+img.getHeight(null)+" H"+neueHöhe);
setSize(neueBreite,neueHöhe);
repaint();
invalidate();
}
@Override
protected void paintComponent(Graphics g) {
if (img != null) {
g.drawImage(img, 0, 0, this);
}
}
}
Code:
//Das Bild
JPanel BildP = new JPanel();
BildP.setLocation(0, 0);
ImageComponent BildComp = new ImageComponent();
File f = new File("H:\\BilderSchiffeVersenken\\Logo.png");
BufferedImage Bild;
try {
Bild = ImageIO.read(f);
BildP.setSize(Frame.breite, Frame.höhe);
BildComp.setzeGeschnittenesImg(Bild, BildP.getWidth(), BildP.getHeight());
//BildComp.setzeImg(Bild);
System.out.println(Bild.getHeight()+"BildComp"+BildComp.getHeight());
} catch (IOException e) {// Fehler beim Einlesen
// TODO Auto-generated catch block
e.printStackTrace();
}
BildP.add(BildComp);
add(BildP);