2016-03-01 82 views
1

我需要一个javafx程序来将文本设置为随机颜色和不透明度我不确定如何操作它?这里是我的代码将文本设置为随机颜色和不透明度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); 

回答

3

样本可以使用Math.random()产生一个双范围在[0,1),所以你需要做的:

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

颜色率先通过了文档多一点挖,但可以实现:

文本。 ()Math.random(),Math.random(),Math.random());

SetFill来自Shape,Text继承自SetFill需要一个Paint,其中Color是最简单的实现。 Color.color(double,double,double)在rgb值范围[0,1]范围内加倍。

了解如何浏览文档,您将能够在您的文档中找到这些类型的内容自己很快就会在将来!

注意:opacity/rgb颜色全部取双倍范围[0,1] Math.random()产生范围[0,1)。如果你不熟悉这个符号,这意味着Math.random()永远不会产生1,只有一个小于1的数字可能的准确性。这意味着你不会有这种方法100%完全不透明/ r/g/b,但实际上你可能无法区分这种差异,所以最好使用不那么复杂的方法。

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

+0

因为我通常使用Label而不是Text,下面是讨论何时使用其中一个的链接:http://stackoverflow.com/questions/24374867/label-and-text-differences-in-javafx – CAD97

+0

Thanks for尖端不透明工作,但颜色仍然给我一个不适合的构造错误。我曾尝试math.random之前,但没有知道你需要它3次 –

+0

这是我在阅读文档时的错误。构造函数需要(double r,double g,double b,double alpha)。我已经改变了现在使用'Color.color'的答案,它有rgb的选项。您需要三个随机数,因为该方法有三个值。 – CAD97