this article i wrote may help you more on understanding moving/rotation
but in general i think you should add this method into your player class
this method will create a bullet in the current player coordinates (x,y and angle)
public void fire(int load, int number, int spread,int life) {
if (tmpLoad == 0) {
for (int i = 0; i < number; i++) {
Board.bullet.setX(x + w);
Board.bullet.setY(y + h / 2);
Board.bullet.setA(a + ((spread * (i - 1)) / 2));
Board.bullet.setW(5);
Board.bullet.setH(5);
bullets.add(new Bullet(Board.bullet.getX(),
Board.bullet.getY(), Board.bullet.getA(), Board.bullet
.getW(), Board.bullet.getH()));
}
tmpLoad = load;
}else{
tmpLoad -= 1;
life--;
}
}
and based on this cooridnates, you make your bullet move forward
public void moveForward(int speed) {
x += Math.cos(a)*speed;
y += Math.sin(a)*speed;
}
now all you have to do is painting your bullet array in your paint method and updating in your game loop