I am in the process of designing a game implementation in Java, and without much experience with GUIs past swing applications, I am not quite sure where to start with this.

The game I will be implementing can be seen and played here:

In other words, it is board game, divided into 4 individual, movable (360* turnable, 90* at a time) squares.

Using some sort of double buffering, I can flip each of the squares of this game, but what I would like to do is create an animated effect of them turning, such as on the website above. Can anyone recommend a good way to do this?