How to draw a clock with JavaFX 2?
java, javafx-2
Solution
- Add 3 lines (for hour, minute, second) with different strokes and lengths to your Group.
- Place one end of each line in the center of your circle and the other end of each line pointing straight up at 12 o'clock.
- Create a timeline which triggers a keyframe each second.
- In the keyframe:
- Calculate the degree of rotation for the hands based on the current time.
- Rotate the hands the required amount.
- Set the timeline to cycle indefinitely.
- Place your Group in a Scene and add the Scene to a Stage.
- Play your timeline.
I created a sample app implementing the above principles.
Update
In response to criticism of the coding style used in the sample app, I created a refactored sample app which uses a more functional coding style.
Additionally the jfxtras project has an AnalogueClock control. Here is the gist of how to use the jfxtras clock.
Problem
Given an hour and a minute, I want to draw an analogous clock. I was able to create a `Group` with a `Circle`, but I don't know which class to use for the hands and how to place and rotate them.