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 ......