私は線の描画をソリッド、点線または破線から動的に変更したいと思います:line.setStrokeを使用する必要があるようですが、正しい方法ですか?JavaFx 2.x:破線や点線を描く方法は?
そして、これを達成する方法は?
ありがとう
私は線の描画をソリッド、点線または破線から動的に変更したいと思います:line.setStrokeを使用する必要があるようですが、正しい方法ですか?JavaFx 2.x:破線や点線を描く方法は?
そして、これを達成する方法は?
ありがとう
これは正しい方法ではありません。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ラインとギャップ配列のパターンを画定します。 abovesの出力として、次の異なるパターンを参照してください:もちろん
をStrokeDashArray配列要素を操作することによって、あなたは動的パターンを変更することができます。
私はこれが古いと知っていますが、追加するだけで、すべてのダッシュが独自の線として描画されるため、パフォーマンスに大きな影響を与えます。 – Appleshell
@Uluk私はこのdashedArray()を使用しています。 'line.getStrokeDashArray()。addAll(3d、20d、30d);'なぜこの出力が得られますか?予期せぬことです。 http://imgur.com/a/DnzoV – UnKnown
破線の 'gc.setLineDashes'はどうでしょうか? – lapots
私は解決策を見つけました:この方法を使用して line.setStyle( " - fx-stroke-dash-array:2 12 12 2;"); のようなリフレッシュを使用する必要があります。pane.getChildren()。remove(line); pane.getChildren()。add(line); それ以外の場合、線はソリッドから破線に変わりません(Windows XP)。 これ以外の方法がありますか?さらに、Linuxでは、削除と追加を使用する必要はなく、正しく動作します。 –