Collision Detecting

Hi! A little introduction, my name is Seb and I just started doing Java this past week. I have experience with C++ and Flash/ Actionscript which helps me a lot, so I jumped straight into game developing with Java

So a little background, my friend tried giving me a challenge: make a car that you can drive from top view, and have it get more and more damaged as you hit the walls. So I took it as a good way to learn by trial and error how to do it !

This is what I have so far:

It works great so far ! Except: for the collision detecting on the walls. If you hit the wall in certain ways, sometimes it will float off through the wall into non-existence, or get stuck. But I realize thats because on a rotating car, I just made a rectangle around it and checked if it x.intercepts(y);

Ideally what I would love to do, is to make a front collision bumper on it and a back one for when you're driving forwards or backwards, but I have no idea how to place it at the right spot as the car is turning. This is where I need help

Here's my coding for the collision detection:
Board.java
``` public void checkCollisions() {
Rectangle r3 = car.getBounds();
collide = false;

//WALLS
for (int i = 0; i < walls.size(); i++) {
Wall b = (Wall)walls.get(i);  //walls objects in an ArrayList
Rectangle r2 = b.getBounds();  //return rectangle from the wall obj
if (r3.intersects(r2)) {  //ctest
car.collision();
collide = true;
}
}
if (!collide) {
car.resetCollision();
}
}```

Car.java
```    public Rectangle getBounds() {
return new Rectangle(x, y, width, height);
}```
(walls.class has the same function)

car.collision() just sets 'collision' to be true in car so when its checked in the car's loop it does this:
car.java
```    	if (collision) {
rotation -= 90;  //face the rotation towards the sprite
if (accel >0) { accel = accel/accel; }
if (accel < 0) { accel = -accel/accel; }

//bounce car back away from the wall
rotation += 90;
}```

now, as far as the car control goes, I have:
car.java (keyboard input)
```        if (key == KeyEvent.VK_LEFT) {
if (accel != 0) {
rotation -= 6;
makeTire();
}
}```

car.java (car's loop)
```    	if (accel != 0 && !collision) {
rotation -= 90;
rotation += 90;
}```

Board.java (in paint loop)
```        g2d.rotate(Math.toRadians(car.getRotation()), car.getX() + (car.getWidth()/2), car.getY() + (car.getHeight()/2)); //rotate the from its origin
g2d.drawImage(car.getImage(), car.getX(), car.getY(), this); //draw the car at its position

g2d.setTransform(at);```

(I tried to limit the code i paste to just whats necessary to get the point across.. if you'd like to see more just request)

So any help or suggestions/concepts on how to go about getting better collision would be helpful !