Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
        at javax.swing.JComponent.paint(JComponent.java:1045)
        at emptygraphicstest.Main$1.paint(Main.java:53)
        at javax.swing.JComponent.paintChildren(JComponent.java:866)
        at javax.swing.JComponent.paint(JComponent.java:1038)
        at javax.swing.JComponent.paintChildren(JComponent.java:866)
        at javax.swing.JComponent.paint(JComponent.java:1038)
        at javax.swing.JLayeredPane.paint(JLayeredPane.java:581)
        at javax.swing.JComponent.paintChildren(JComponent.java:866)
        at javax.swing.JComponent.paintToOffscreen(JComponent.java:5145)
        at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:302)
        at javax.swing.RepaintManager.paint(RepaintManager.java:1145)
        at javax.swing.JComponent.paint(JComponent.java:1015)
        at java.awt.GraphicsCallback$PaintCallback.run(GraphicsCallback.java:39)
        at sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:78)
        at sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:115)
        at java.awt.Container.paint(Container.java:1844)
        at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:751)
        at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:696)
        at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:676)
        at javax.swing.RepaintManager.access$700(RepaintManager.java:57)
        at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1550)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:226)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:602)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:185)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:177)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:138)
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
        at javax.swing.JComponent.paint(JComponent.java:1045)
        at emptygraphicstest.Main$1.paint(Main.java:53)
        at javax.swing.JComponent.paintToOffscreen(JComponent.java:5138)
        at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:302)
        at javax.swing.RepaintManager.paint(RepaintManager.java:1145)
        at javax.swing.JComponent._paintImmediately(JComponent.java:5086)
        at javax.swing.JComponent.paintImmediately(JComponent.java:4896)
        at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:740)
        at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:696)
        at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:676)
        at javax.swing.RepaintManager.access$700(RepaintManager.java:57)
        at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1550)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:226)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:602)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:185)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:177)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:138)package emptygraphicstest;
import java.awt.Color;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Rectangle;
import java.awt.Shape;
import java.awt.geom.AffineTransform;
import java.awt.geom.PathIterator;
import java.awt.geom.Point2D;
import java.awt.geom.Rectangle2D;
import java.awt.image.ImageObserver;
import java.text.AttributedCharacterIterator;
import javax.swing.DebugGraphics;
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
/**
 *
 * @author dan
 */
public class EmptyGraphics extends Graphics {
    @Override
    public Graphics create() {
        return null;                               // hab hier auch versucht ein new DebugGraphics() zu returnen, bzw dieses 
                                                      // direkt zu instanziieren (in dem paintevent) - Exceptions treten dann in der 
                                                      //DebugGraphics-Klasse auf
    }
    @Override
    public void translate(int x, int y) {
    }
    @Override
    public Color getColor() {
        return Color.black;
    }
    @Override
    public void setColor(Color c) {
    }
    @Override
    public void setPaintMode() {
    }
    @Override
    public void setXORMode(Color c1) {
    }
    @Override
    public Font getFont() {
        return new Font("Arial", Font.PLAIN, 10);
    }
    @Override
    public void setFont(Font font) {
    }
    @Override
    public FontMetrics getFontMetrics(Font f) {
        return new FontMetrics(new Font("Arial", Font.PLAIN, 10)) {
        };
    }
    @Override
    public Rectangle getClipBounds() {
        return new Rectangle(0, 0, 2, 2);
    }
    @Override
    public void clipRect(int x, int y, int width, int height) {
    }
    @Override
    public void setClip(int x, int y, int width, int height) {
    }
    @Override
    public Shape getClip() {
        return new Rectangle2D.Float(0,0,2,2);
    }
    @Override
    public void setClip(Shape clip) {
    }
    @Override
    public void copyArea(int x, int y, int width, int height, int dx, int dy) {
    }
    @Override
    public void drawLine(int x1, int y1, int x2, int y2) {
    }
    @Override
    public void fillRect(int x, int y, int width, int height) {
    }
    @Override
    public void clearRect(int x, int y, int width, int height) {
    }
    @Override
    public void drawRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight) {
    }
    @Override
    public void fillRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight) {
    }
    @Override
    public void drawOval(int x, int y, int width, int height) {
    }
    @Override
    public void fillOval(int x, int y, int width, int height) {
    }
    @Override
    public void drawArc(int x, int y, int width, int height, int startAngle, int arcAngle) {
    }
    @Override
    public void fillArc(int x, int y, int width, int height, int startAngle, int arcAngle) {
    }
    @Override
    public void drawPolyline(int[] xPoints, int[] yPoints, int nPoints) {
    }
    @Override
    public void drawPolygon(int[] xPoints, int[] yPoints, int nPoints) {
    }
    @Override
    public void fillPolygon(int[] xPoints, int[] yPoints, int nPoints) {
    }
    @Override
    public void drawString(String str, int x, int y) {
    }
    @Override
    public void drawString(AttributedCharacterIterator iterator, int x, int y) {
    }
    @Override
    public boolean drawImage(Image img, int x, int y, ImageObserver observer) {
        return false;
    }
    @Override
    public boolean drawImage(Image img, int x, int y, int width, int height, ImageObserver observer) {
        return false;
    }
    @Override
    public boolean drawImage(Image img, int x, int y, Color bgcolor,
            ImageObserver observer) {
        return false;
    }
    @Override
    public boolean drawImage(Image img, int x, int y, int width, int height, Color bgcolor,
            ImageObserver observer) {
        return false;
    }
    @Override
    public boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, ImageObserver observer) {
        return false;
    }
    @Override
    public boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, Color bgcolor,
            ImageObserver observer) {
        return false;
    }
    @Override
    public void dispose() {
        
    }
}