20

線の描画を実線、点線、または破線から動的に変更したいのですが、line.setStrokeを使用する必要があるようですが、これは正しい方法ですか?

そして、これを達成する方法は?

ありがとう

4

1 に答える 1

42

いいえ、それは正しい方法ではありません。setStrokeはストロークの色を設定します。
正しい方法はgetStrokeDashArray().add()次のとおりです。

Line line1 = new Line(20, 40, 270, 40);
line1.getStrokeDashArray().addAll(25d, 20d, 5d, 20d);

Line line2 = new Line(20, 60, 270, 60);
line2.getStrokeDashArray().addAll(50d, 40d);

Line line3 = new Line(20, 80, 270, 80);
line3.getStrokeDashArray().addAll(25d, 10d);

Line line4 = new Line(20, 100, 270, 100);
line4.getStrokeDashArray().addAll(2d);

Line line5 = new Line(20, 120, 270, 120);
line5.getStrokeDashArray().addAll(2d, 21d);

pane.getChildren().addAll(line1, line2, line3, line4, line5);

StrokeDashArrayは、ラインシーケンスとギャップシーケンスのパターンを定義します。上記の出力として、次のさまざまなパターンを参照してください。

ここに画像の説明を入力してください

もちろん、StrokeDashArray配列要素を操作することで、パターンを動的に変更できます。

于 2012-10-08T18:37:57.380 に答える