Ciao, sto implementando un gioco in java e mi servirebbero dei jpanel però rotondi, allora ho provato creare una sottoclasse di jpanel e a cambiargli UI ma non sono ancora riuscito ad ottenere dei risultati.. posto il codice che ho scritto fin'ora:

(mi spiace ma non riesco a far mantere il codice oridnato)
import javax.swing.JPanel;
import javax.swing.plaf.PanelUI;
import javax.swing.RepaintManager;
import java.awt.Color;
import javax.swing.DebugGraphics;
import java.awt.Dimension;

public class CirclePanel extends JPanel
{

public CirclePanel()
{
setPreferredSize(new Dimension(30, 30));
JPanel panel = new JPanel();
RepaintManager repaintManager = RepaintManager.currentManager(panel);
repaintManager.setDoubleBufferingEnabled(false);
DebugGraphics dGraphic = new DebugGraphics();
dGraphic.setColor(Color.white);
dGraphic.fillOval(0, 0, 25, 25);
PanelUI ui = panel.getUI();
ui.update(dGraphic, panel);
setUI(ui);
setVisible(true);
}
}
in fase di compilazione non ho nessun errore, poi se lo mando in run mi si apre la form(composta da un jframe ed un jpanel a cui aggiungo l'oggetto CirclePanel) ma non si visualizza nulla

e nella shell compare il messaggio di eccezzione:

Exception in thread "main" java.lang.NullPointerException
at javax.swing.DebugGraphics.setColor(DebugGraphics.j ava:200)
at CirclePanel.<init>(CirclePanel.java:19)
at MasterMind.main(MasterMind.java:36)

Qualche consiglio utile? è la prima volta che lavoro con l'UI di un componente e sono un pò spaesato.