Are you sure you are not over engineering this? I do not think adding a factory here would simplify or make your design any simpler.
It looks like it would be enough to have different kinds of ICarHandling
implementations that you would pass to the car constructor when your user selects a different kind of a car.
You could easily extend this design by adding a Textures
object that would contain the information about where to load the textures etc. This would not bind certain textures to certain car, and you could mix and match different handlings and textures.
// class Car constructor
public Car(Point position, ICarHandling carHandling, Textures textures) {
this.position = position;
this.carHandling = carHandling;
this.textures = textures;
}
As for the second questions you have
I thought for storing the car properties (and image locations) to a properties file but don't know how I should load this into my Java Swing game.
Assuming you are using somewhat stardard java project structure, store the textures, properties etc in the resources folder, then load them from there.
Really, just google this, there are several easy ways to achieve this with complete code examples.