https://youtube.com/watch?v=4aQ5ZWAotPo da Mathe

...zur Antwort
Was ist an diesem Code falsch(java)?

package pack2;

import java.awt.Graphics;

import javax.swing.ImageIcon;

public class GeometricImage extends GeometricObjekt implements Printable{

ImageIcon icon;

public GeometricImage(String fileName,int x,int y) {
    super(new Vertex(x,y));
    icon = new ImageIcon(getClass().getClassLoader().getResource(fileName));
    init();
    }
public GeometricImage(ImageIcon icon,int x,int y){
    super(new Vertex(x,y));
    this.icon =icon;
    init();
}

void init(){
    width = icon.getImage().getWidth(icon.getImageObserver());
    height = icon.getImage().getHeight(icon.getImageObserver());
}

public void paintTo(Graphics g) {
    icon.paintIcon(null, g, pos.x, pos.y);      
}

public static void main(String[] args){
    GeometricImage gi = new GeometricImage("rocket.png",10,10);
    System.out.println(gi.width);
    System.out.println(gi.height);
    ShowInFrame.show(new PrintablePanel(gi));
}

}

package pack2;

public class PrintablePanel extends SizedPanel{ private static final long serialVersionUID = 1L; Printable pa; public PrintablePanel(Printable pa) { this.pa = pa; }

@Override
public void paintComponent(java.awt.Graphics g){
    pa.paintTo(g);
}

}

er beschwert sich immer bei den Zeilen icon.paintIcon(null, g, pos.x, pos.y); und pa.paintTo(g); und Printable is n Interface das paintTo hinzufügt falls noch was unverstädlich is einfach fragen

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerExceptionat pack2.GeometricImage.paintTo(GeometricImage.java:28)at pack2.PrintablePanel.paintComponent(PrintablePanel.java:12)at javax.swing.JComponent.paint(Unknown Source)at javax.swing.JComponent.paintChildren(Unknown Source)at javax.swing.JComponent.paint(Unknown Source)at javax.swing.JComponent.paintChildren(Unknown Source)at javax.swing.JComponent.paint(Unknown Source)at javax.swing.JLayeredPane.paint(Unknown Source)at javax.swing.JComponent.paintChildren(Unknown Source)at javax.swing.JComponent.paintToOffscreen(Unknown Source)at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(Unknown Source)at javax.swing.RepaintManager$PaintManager.paint(Unknown Source)at javax.swing.RepaintManager.paint(Unknown Source)at javax.swing.JComponent.paint(Unknown Source)at java.awt.GraphicsCallback$PaintCallback.run(Unknown Source)at sun.awt.SunGraphicsCallback.runOneComponent(Unknown Source)at sun.awt.SunGraphicsCallback.runComponents(Unknown Source)at java.awt.Container.paint(Unknown Source)at java.awt.Window.paint(Unknown Source)at javax.swing.RepaintManager$4.run(Unknown Source)at javax.swing.RepaintManager$4.run(Unknown Source)at java.security.AccessController.doPrivileged(Native Method)at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)at javax.swing.RepaintManager.prePaintDirtyRegions(Unknown Source)at javax.swing.RepaintManager.access$1200(Unknown Source)at javax.swing.RepaintManager$ProcessingRunnable.run(Unknown Source)at ......

...zum Beitrag

Hallo ich habs nochmal reinkopiert vlt war irgendein Import falsch oderso auf jedenfall funzts jetzt

...zur Antwort