The issue is that we draw the checkboxes manually. And we actually draw 4 lines: top and left in Color.GRAY and right and bottom in Color.lightGray. But we don't draw any background so if what you have in the back is black, you won't see the state of the checkbox.
I've modified it so the Legend color will be used to draw a rectangle so you'll have a background. This way, you can still have a transparent legend or not, and you can now have transparent checkboxes (legend color = Color.transparent) or colored (legend.color = yourColor).

This will be available with the next maintenance release.
In the meanwhile you can try to use LegendResolver's getItemCoordinates to manually calculate each checkbox position (something relative to the coordinates argument provided) and draw the colored rectangle inside this method. I think this would do the trick.