将文本设置为随机颜色和不透明度javaFX

Sun*_*lon 4 java text javafx colors opacity

我需要一个javafx程序将文本设置为随机颜色和不透明度我不知道如何做到这一点?这是我的代码示例

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);
Run Code Online (Sandbox Code Playgroud)

CAD*_*D97 8

您可以使用Math.random()在[0,1)范围内生成Double,因此您需要执行以下操作:

文本.setOpacity(Math.random());

颜色需要更多地挖掘文档,但可以通过以下方式完成:

文本.setFill(Color.color(Math.random(),Math.random(),Math.random());

SetFill来自Shape,Text继承自.SetFill采用Paint,Color是最简单的实现.Color.color(double,double,double)将rgb值与[0,1]范围内的双精度值相乘.

了解如何浏览文档,您将来可以快速找到这些类似的东西!

注意:不透明度/ rgb颜色都采用范围[0,1]的双精度,其中Math.random()在[0,1]范围内产生.如果你不熟悉这种表示法,这意味着Math.random()将永远不会产生1,只有一个小于1的数字可能的准确度.这意味着使用此方法永远不会有100%完全不透明/ r/g/b,但实际上您可能无法区分,因此最好使用不太复杂的方法.

注2:javafx.scene.paint.Color#color实际上提供了一个包含不透明度的四参数构造函数,但我建议将Text节点本身的不透明度设置为上面而不是Paint的不透明度.