¿JTable devuelve nulo para gráficos?

Estoy tratando de dibujar líneas sobre mi JTable usando un objeto Painter que hice, pero por alguna razóntable.getGraphics() devuelve nulo

Clase de pintor:

import java.awt.BasicStroke;
import java.awt.Graphics;
import java.awt.Graphics2D;

import javax.swing.JTable;

public class Painter extends JTable {

    public Painter(){

    }

    public void paintSudokuLines(Graphics g){
        paintComponent(g);
    }

    public void paintComponent(Graphics g){
        super.paintComponent(g);
        Graphics2D g2 = (Graphics2D) g;
        g2.setStroke(new BasicStroke(3));
        g2.drawLine(0, 300, 400, 250);
    }
}

Estoy llamando al método con:

private Painter paint = new Painter();
paint.paintSudokuLines(table.getGraphics());

No tengo idea de por qué este es el caso, así que necesito alguna explicación.

Respuestas a la pregunta(1)

Su respuesta a la pregunta