Just a couple of minor changes and you're good to go. First off, int division got you on the 1/count
part. This stays zero unless you cast "count" to float. I moved the calc to a variable called "offset". Also, since it was changing by a percentage of diameter, you need to multiply by "r" to get the effect you wanted and I removed the divide by 2, so it filled the area evenly.
The only other changes here are that I moved the drawing call to be after the setColor(), which is usually what you want to do, and I changed it to fillOval() instead of drawOval() so it wasn't just line drawings.
public static void bullseye(Graphics g, int x, int y, int diam, int count) {
int r = diam; // because fillOval uses width and height, use diam here
int xloc = x;
int yloc = y;
boolean change = true;
for(int j=0;j<count;j++) {
// must cast int divisor to float
// then cast the final result back to int.
// also multiplying by r so it's a percentage of diam
int offset = (int)(r*(j*(1/(float)count)));
if(change) {
g.setColor(Color.BLACK);
change = false;
} else {
g.setColor(Color.RED);
change = true;
}
g.fillOval(xloc+offset/2, yloc+offset/2, r-offset, r-offset);
}
}