Aquí lo que hago es sobreescribir el método Paint de un JFrame.
public void paint(Graphics g){
//Lo que hago es pintar un cuadrado Blanco en el JFrame cada vez que se llama este metodo.
g.setColor(Color.WHITE);
g.fillRect(0,0,getWidth(),getHeight());
g.setColor(Color.BLACK);
//Dibujamos un ovalo completo solo la linea que lo rodea como te das cuenta lo parametros son 100, 100 estos son las coordenadas donde queres que se dibuje tu ovalo y el 150, 150 es para indicarle de que tamaño los queres.
g.drawOval(100,100,150,150);
//Aqui dibujo un Arco para rellenar la mitad del obvalo en este caso circulo los primeros 4 parametros igual que el anterior, ahora los ultimos dos son angulo de inicio y lo que queres que abarque el arco, el inicio son las 3 grados positivos hacia la izquierda como en el caso del 90 y grados negativos a la derecha como el caso del -180
g.fillArc(100,100,150,150,90,-180);
//luego los circulos restantes para armar el simbolo.
g.fillOval(137,175,75,75);
g.fillOval(150,137,10,10);
g.setColor(Color.WHITE);
g.fillOval(137,101,75,75);
g.fillOval(170,208,10,10);
g.setColor(Color.BLACK);
g.fillOval(170,137,10,10);
}
Te recomiendo ir comentando cada sentencia de graficada para que vayas viendo paso a paso es lo que voy pintando y como lo vas a ir pintando si te das cuenta todos son círculos aquí cabe en tu si quiere usar Graphics2D lo único que haces es castear las Graphics del parámetro a Graphics2D y también usar un buffer si vas a usar el método repaint pero eso ya lo dejo a tu criterio espero que esto te sirva y cualquier cosa ya sabes puede seguir preguntando