1. ホーム
  2. java

[解決済み] テキストにランダムな色と不透明度を設定する javaFX

2022-02-11 16:12:22

質問

テキストにランダムな色と不透明度を設定する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() を生成することができます。 Double の範囲で [0,1) というように、する必要があります。

text. setOpacity (Math.random());

カラーは、ドキュメントをもう少し調べる必要がありましたが、これで実現できます。

text. setFill ( Color.color (Math.random(), Math.random(), Math.random());

setFill から来る Shape ということです。 Text を継承しています。 setFill を取る。 Paint は、どの Color は最もシンプルな実装です。 Color.color(double, double, double) はrgb値を[0,1]の範囲でdoublesで受け取ります。

ドキュメントを読みこなす方法を学べば、将来、この種のことを自分ですぐに見つけられるようになりますよ。

注:不透明度/RGBカラーはすべて範囲[0,1]の2倍を取ります。 Math.random() は、範囲 [0,1] で生成されます。この表記に馴染みがない場合は、次のような意味になります。 Math.random() は決して1を出力せず、可能な限りの精度で1より小さい数を出力します。つまり、この方法では100%完全なopaque/r/g/bを得ることはできませんが、現実にはおそらくその違いはわからないでしょうから、より複雑でない方法を使う方がよいでしょう。

注2: javafx.scene.paint.Color#color しかし、私は、ペイントの不透明度ではなく、上記のようにTextノード自体の不透明度を設定することをお勧めします。