I need a javafx program to set text to a random color and opacity I'm not sure on how to do it? here is a sample of my code
Text text1 = new Text();
text1.setText("Java");
text1.setFont(Font.font("Times New Roman", FontWeight.BOLD, FontPosture.ITALIC, 22));
text1.setRotate(90);
gridpane.add(text1, 3, 1);
You can use Math.random()
to generate a Double
in the range [0,1)
, so you need to do:
text.
setOpacity
(Math.random());
Color took a little more digging through the docs, but can be accomplished with:
text.
setFill
(
Color.color
(Math.random(), Math.random(), Math.random());
setFill
comes from Shape
, which Text
inherits from. setFill
takes a Paint
, which Color
is the simplest implementation of. Color.color(double, double, double)
takes the rgb value with doubles in the range [0,1].
Learn how to navigate through the docs and you'll be able to find these sorts of things on your own quickly in the future!
Note: opacity/rgb color all take doubles of the range [0,1] where Math.random()
produces in the range [0,1). If you're unfamiliar with this notation, this means Math.random()
will NEVER produce 1, only a number smaller than 1 by possible accuracy. This means that you will never have a 100% fully opaque/r/g/b with this method but in reality you probably can't tell the difference, so it's better to use the less complicated method.
Note 2: javafx.scene.paint.Color#color
actually provides a four-argument constructor that includes opacity, but I would recommend setting the opacity of the Text node itself as above rather than the opacity of the Paint.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With