How can I make my isometric tile collision detection more accurate, I'm using the Rectangle class from java to detect collisions but because it's a rectangle it overlaps other rectangles which means clicking on a tile has a chance of selecting the tile next to it and I would like to know how to fix that.
First off, as you stated in your question, you should be using a better representing for the bounding box of each collision. Rectangles are (obviously) incorrect.
Why not create your own
Diamond class and have each object in your world bound by it? That should provide a better mapping to isometric tiles. As for how to detect if the parallelogram actually contains the point selected, refer to this StackOverflow post: "Parallelogram contains Point".