Finally I found the mistake: It was, of course, my fault. I simply made the wrong math

should have worked harder at school....
Simply replace the updatePhysics() with this:
Using java Syntax Highlighting
public void updatePhysics() {
Coordinates coord;
Speed speed;
for (GraphicObject graphic : _graphics) {
coord = graphic.getCoordinates();
speed = graphic.getSpeed();
// Direction
if (speed.getXDirection() == Speed.X_DIRECTION_RIGHT) {
coord.setX(coord.getX() + speed.getX());
} else {
coord.setX(coord.getX() - speed.getX());
}
if (speed.getYDirection() == Speed.Y_DIRECTION_DOWN) {
coord.setY(coord.getY() + speed.getY());
} else {
coord.setY(coord.getY() - speed.getY());
}
// borders for x...
if (coord.getX() < 0) {
speed.toggleXDirection();
coord.setX(-coord.getX());
} else if (coord.getX() + graphic.getGraphic().getWidth() > getWidth()) {
speed.toggleXDirection();
coord.setX(coord.getX() + getWidth() - (coord.getX() + graphic.getGraphic().getWidth()));
}
// borders for y...
if (coord.getY() < 0) {
speed.toggleYDirection();
coord.setY(-coord.getY());
} else if (coord.getY() + graphic.getGraphic().getHeight() > getHeight()) {
speed.toggleYDirection();
coord.setY(coord.getY() + getHeight() - (coord.getY() + graphic.getGraphic().getHeight()));
}
}
}
Parsed in 0.036 seconds, using
GeSHi 1.0.8.4