我需要一个 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);
最佳答案
您可以使用 Math.random()
生成 [0,1)
范围内的 Double
,因此您需要做:
文本。
setOpacity
(Math.random());
Color 在文档中花费了更多的时间,但可以通过以下方式完成:
文本。
setFill
(
Color.color
(Math.random(), Math.random(), Math.random());
setFill
来自 Shape
,Text
继承自它。 setFill
接受一个Paint
,Color
是最简单的实现。 Color.color(double, double, double)
取 [0,1] 范围内 double 的 rgb 值。
了解如何浏览文档,将来您将能够自己快速找到此类内容!
注意:不透明度/rgb 颜色都采用范围 [0,1] 的两倍,其中 Math.random()
产生范围 [0,1)。如果您不熟悉这种表示法,这意味着 Math.random()
永远不会产生 1,只会产生一个可能准确度小于 1 的数字。这意味着您永远不会使用此方法获得 100% 完全不透明/r/g/b,但实际上您可能无法区分,因此最好使用不太复杂的方法。
注意 2:javafx.scene.paint.Color#color
实际上提供了一个包含不透明度的四参数构造函数,但我建议像上面那样设置文本节点本身的不透明度,而不是Paint 的不透明度。
关于java - 将文本设置为随机颜色和不透明度 javaFX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35715283/