Speedometer Draws on Public Attributes

By Vaibhav Choudhary, July 12, 2009

With JavaFX technology, you can easily build your own customizable speedometer by using simple graphics operation and binding.

Understanding the Code

The following code in Figure 1 creates a speedometer. The speedometer component changing a few settings, for example, color, time.

Source Code

package speedometer;

import javafx.scene.CustomNode;
import javafx.scene.Group;
import javafx.scene.Node;
import javafx.scene.paint.Paint;
import javafx.scene.shape.Arc;
import javafx.scene.shape.ArcType;
import javafx.scene.shape.ShapeSubtract;

public class TubePart extends CustomNode {

    public var sAngle = 0.0;
    public var len = 0.0;
    public var col: Paint;
    public override function create(): Node {
        return Group {
            content: [
                ShapeSubtract {
                    fill: col
                    a: Arc {
                        centerX: 200,
                        centerY: 200
                        radiusX: 100,
                        radiusY: 100
                        startAngle: sAngle - 60,
                        length: len
                        type: ArcType.ROUND
                      },
                    b: Arc {
                        centerX: 200,
                        centerY: 200
                        radiusX: 60,
                        radiusY: 60
                        startAngle: sAngle - 60,
                        length: len
                        type: ArcType.ROUND
                      },
                }
            ]
        };
    }
}

Figure 1: TubePart.fx Class

Figure 2 shows the changed color in SpeedoMeter.

Figure 2: Different Color SpeedoMeter