2012-10-08 26 views
13

मैं ठोस, बिंदीदार या धराशायी से रेखा के ड्रॉ को गतिशील रूप से बदलना चाहता हूं: ऐसा लगता है कि मुझे line.setStroke का उपयोग करना है, क्या यह सही तरीका है?जावाएफएक्स 2.x: डैश किए गए या बिंदीदार रेखाओं को कैसे आकर्षित करें?

और, इसे कैसे पूरा किया जाए?

धन्यवाद

+0

मुझे एक समाधान मिला है: इस विधि का उपयोग करके line.setStyle ("- fx-stroke-dash-array: 2 12 12 2;"); मुझे रीफ्रेश का उपयोग करना चाहिए जैसे कि pane.getChildren()। हटाएं (रेखा); pane.getChildren()। जोड़ें (लाइन); अन्यथा लाइन ठोस से धराशायी नहीं हो जाती है। (विंडोज एक्सपी)। क्या इसके अलावा कोई अलग तरीका है? और भी, लिनक्स में हटाने और जोड़ने का उपयोग करने की कोई आवश्यकता नहीं है, यह सही तरीके से काम करता है। –

उत्तर

34

नहीं है कि सही तरीका नहीं है, 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 सरणी तत्व जोड़ तोड़ द्वारा

enter image description here

बेशक

: निम्नलिखित विभिन्न पैटर्न aboves के उत्पादन के रूप में देखें।

+0

मुझे पता है कि यह पुराना है, लेकिन बस जोड़ने के लिए, यह प्रदर्शन पर एक बड़ी हिट लेता है, क्योंकि प्रत्येक डैश अपनी लाइन के रूप में खींचा जाता है। – Appleshell

+0

@Uluk मैं इस dashedArray() का उपयोग कर रहा हूँ; 'line.getStrokeDashArray()। addAll (3 डी, 20 डी, 30 डी); 'मुझे यह आउटपुट क्यों मिल रहा है? यह अप्रत्याशित है। http://imgur.com/a/DnzoV – UnKnown

+0

डैश किए गए लाइनों के लिए 'gc.setLineDashes' के बारे में क्या? – lapots

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^