JavaFX - रंग

एक आवेदन में रंग लागू करने के लिए, JavaFX पैकेज में विभिन्न कक्षाएं प्रदान करता है javafx.scene.paintपैकेज। इस पैकेज में पेंट नाम का एक सार वर्ग है और यह उन सभी वर्गों का आधार वर्ग है जो रंगों को लागू करने के लिए उपयोग किए जाते हैं।

इन वर्गों का उपयोग करके, आप निम्नलिखित पैटर्न में रंग लागू कर सकते हैं -

  • Uniform - इस पैटर्न में, रंग पूरे नोड में समान रूप से लागू किया जाता है।

  • Image Pattern - यह आपको एक छवि पैटर्न के साथ नोड के क्षेत्र को भरने की अनुमति देता है।

  • Gradient- इस पैटर्न में, नोड पर लागू रंग एक बिंदु से दूसरे तक भिन्न होता है। इसके दो प्रकार के ग्रेडिएंट हैंLinear Gradient तथा Radial Gradient

उन सभी नोड वर्गों को जिन पर आप रंग लागू कर सकते हैं जैसे Shape, Text (दृश्य सहित), नाम के तरीके हैं setFill() तथा setStroke()। ये क्रमशः नोड्स और उनके स्ट्रोक के रंग मूल्यों को निर्धारित करने में मदद करेंगे।

ये विधियाँ पेंट के प्रकार को स्वीकार करती हैं। इसलिए, इन दोनों प्रकार की छवियों को बनाने के लिए, आपको इन कक्षाओं को तत्काल करने और इन विधियों के पैरामीटर के रूप में ऑब्जेक्ट को पास करने की आवश्यकता है।

नोड्स के लिए रंग लागू करना

नोड्स के लिए समान रंग पैटर्न सेट करने के लिए, आपको वर्ग रंग की एक वस्तु को पास करना होगा setFill(), setStroke() निम्नानुसार तरीके -

//Setting color to the text 
Color color = new Color.BEIGE 
text.setFill(color); 

//Setting color to the stroke 
Color color = new Color.DARKSLATEBLUE 
circle.setStroke(color);

उपरोक्त कोड ब्लॉक में, हम कलर ऑब्जेक्ट बनाने के लिए कलर क्लास के स्टैटिक वेरिएबल्स का उपयोग कर रहे हैं।

इसी तरह, आप नीचे दिए गए रंगों के RGB मान या HSB मानक का भी रंग या वेब हैश कोड का उपयोग कर सकते हैं -

//creating color object by passing RGB values 
Color c = Color.rgb(0,0,255);   

//creating color object by passing HSB values
Color c = Color.hsb(270,1.0,1.0);  

//creating color object by passing the hash code for web 
Color c = Color.web("0x0000FF",1.0);

उदाहरण

निम्नलिखित एक उदाहरण है जो दर्शाता है, जावाएफएक्स में नोड्स पर रंग कैसे लागू किया जाए। यहां, हम एक सर्कल और टेक्स्ट नोड बना रहे हैं और उन पर रंग लगा रहे हैं।

इस कोड को नाम वाली फ़ाइल में सहेजें ColorExample.java

import javafx.application.Application; 
import javafx.scene.Group; 
import javafx.scene.Scene; 
import javafx.scene.paint.Color; 
import javafx.stage.Stage; 
import javafx.scene.shape.Circle; 
import javafx.scene.text.Font; 
import javafx.scene.text.Text; 
         
public class ColorExample extends Application { 
   @Override 
   public void start(Stage stage) { 
      //Drawing a Circle 
      Circle circle = new Circle();    
      
      //Setting the properties of the circle 
      circle.setCenterX(300.0f); 
      circle.setCenterY(180.0f); 
      circle.setRadius(90.0f); 
       
      //Setting color to the circle 
      circle.setFill(Color.DARKRED);    
      
      //Setting the stroke width 
      circle.setStrokeWidth(3); 
      
      //Setting color to the stroke  
      circle.setStroke(Color.DARKSLATEBLUE);
      
      //Drawing a text 
      Text text = new Text("This is a colored circle"); 
      
      //Setting the font of the text 
      text.setFont(Font.font("Edwardian Script ITC", 50)); 
      
      //Setting the position of the text 
      text.setX(155); 
      text.setY(50); 
       
      //Setting color to the text 
      text.setFill(Color.BEIGE); 
      text.setStrokeWidth(2); 
      text.setStroke(Color.DARKSLATEBLUE); 
         
      //Creating a Group object  
      Group root = new Group(circle, text); 
         
      //Creating a scene object 
      Scene scene = new Scene(root, 600, 300);  
      
      //Setting title to the Stage 
      stage.setTitle("Color Example"); 
         
      //Adding scene to the stage 
      stage.setScene(scene); 
         
      //Displaying the contents of the stage 
      stage.show(); 
   } 
   public static void main(String args[]){ 
      launch(args); 
   } 
}

निम्न कमांड का उपयोग करके कमांड प्रॉम्प्ट से सहेजे गए जावा फ़ाइल को संकलित और निष्पादित करें।

Javac ColorExample.java 
java ColorExample

निष्पादित करने पर, उपरोक्त कार्यक्रम एक JavaFX विंडो बनाता है जो निम्नानुसार है -

नोड्स के लिए छवि पैटर्न लागू करना

नोड्स के लिए एक छवि पैटर्न लागू करने के लिए, तत्काल ImagePattern वर्ग और उसके ऑब्जेक्ट को पास करें setFill(), setStroke() तरीकों।

इस वर्ग का निर्माता छह मापदंडों को स्वीकार करता है -

  • Image - उस छवि का ऑब्जेक्ट जिसका उपयोग करके आप पैटर्न बनाना चाहते हैं।

  • x and y - एंकर आयत की उत्पत्ति के निर्देशांक (x, y) का प्रतिनिधित्व करने वाले दोहरे चर।

  • height and width - एक पैटर्न बनाने के लिए उपयोग की जाने वाली छवि की ऊंचाई और चौड़ाई का प्रतिनिधित्व करने वाले डबल चर।

  • isProportional- यह एक बूलियन चर है; इस संपत्ति को सही पर सेट करने के लिए, प्रारंभ और अंत स्थान आनुपातिक होने के लिए निर्धारित हैं।

ImagePattern radialGradient = new ImagePattern(dots, 20, 20, 40, 40, false);

उदाहरण

निम्नलिखित एक उदाहरण है जो दर्शाता है कि जावाएफएक्स में नोड्स में छवि पैटर्न कैसे लागू किया जाए। यहां, हम एक वृत्त और एक पाठ नोड बना रहे हैं और उनके लिए एक छवि पैटर्न लागू कर रहे हैं।

इस कोड को नाम वाली फ़ाइल में सहेजें ImagePatternExample.java

import javafx.application.Application; 
import javafx.scene.Group; 
import javafx.scene.Scene; 
import javafx.scene.image.Image; 

import javafx.scene.paint.Color; 
import javafx.scene.paint.ImagePattern; 
import javafx.scene.paint.Stop; 

import javafx.stage.Stage; 
import javafx.scene.shape.Circle; 
import javafx.scene.text.Font; 
import javafx.scene.text.Text; 
         
public class ImagePatternExample extends Application { 
   @Override 
   public void start(Stage stage) {           
      //Drawing a Circle 
      Circle circle = new Circle();    
      
      //Setting the properties of the circle 
      circle.setCenterX(300.0f); 
      circle.setCenterY(180.0f); 
      circle.setRadius(90.0f); 
       
      //Drawing a text 
      Text text = new Text("This is a colored circle"); 
      
      //Setting the font of the text 
      text.setFont(Font.font("Edwardian Script ITC", 50)); 
      
      //Setting the position of the text
      text.setX(155); 
      text.setY(50); 
       
      //Setting the image pattern 
      String link = "https://encrypted-tbn1.gstatic.com" 
         + "/images?q=tbn:ANd9GcRQub4GvEezKMsiIf67U" 
         + "rOxSzQuQ9zl5ysnjRn87VOC8tAdgmAJjcwZ2qM";       
      
      Image image = new Image(link); 
      ImagePattern radialGradient = new ImagePattern(image, 20, 20, 40, 40, false); 
       
      //Setting the linear gradient to the circle and text 
      circle.setFill(radialGradient); 
      text.setFill(radialGradient); 
         
      //Creating a Group object  
      Group root = new Group(circle, text); 
         
      //Creating a scene object 
      Scene scene = new Scene(root, 600, 300);  
      
      //Setting title to the Stage 
      stage.setTitle("Image pattern Example"); 
         
      //Adding scene to the stage 
      stage.setScene(scene); 
         
      //Displaying the contents of the stage 
      stage.show(); 
   } 
   public static void main(String args[]){ 
      launch(args); 
   } 
}

निम्न कमांड का उपयोग करके कमांड प्रॉम्प्ट से सहेजे गए जावा फ़ाइल को संकलित और निष्पादित करें।

Javac ImagePatternExample.java 
java ImagePatternExample

निष्पादित करने पर, उपरोक्त कार्यक्रम एक JavaFX विंडो बनाता है जो निम्नानुसार है -

लीनियर ग्रेडिएंट पैटर्न लागू करना

नोड्स के लिए एक लीनियर ग्रैडिएंट पैटर्न लागू करने के लिए, तत्काल LinearGradient वर्ग और उसके ऑब्जेक्ट को पास करें setFill(), setStroke() तरीकों।

इस वर्ग का निर्माणकर्ता पाँच मापदंडों को स्वीकार करता है -

  • startX, startY - ये दोहरे गुण ढाल के प्रारंभिक बिंदु के x और y निर्देशांक का प्रतिनिधित्व करते हैं।

  • endX, endY - ये दोहरे गुण ग्रेडिएंट के अंतिम बिंदु के x और y निर्देशांक का प्रतिनिधित्व करते हैं।

  • cycleMethod - यह तर्क परिभाषित करता है कि रंग ढाल सीमा के बाहर के क्षेत्रों को कैसे शुरू और समाप्त होने वाले बिंदुओं से परिभाषित किया गया है, भरना चाहिए।

  • proportional- यह एक बूलियन चर है; इस संपत्ति को स्थापित करने के लिएtrueप्रारंभ और अंत स्थानों को एक अनुपात में सेट किया गया है।

  • Stops - यह तर्क ढाल लाइन के साथ रंग-रोक बिंदुओं को परिभाषित करता है।

//Setting the linear gradient 
Stop[] stops = new Stop[] { 
   new Stop(0, Color.DARKSLATEBLUE),  
   new Stop(1, Color.DARKRED)
};  
LinearGradient linearGradient = 
   new LinearGradient(0, 0, 1, 0, true, CycleMethod.NO_CYCLE, stops);

उदाहरण

निम्नलिखित एक उदाहरण है जो दर्शाता है कि जावाएफएक्स में नोड्स के लिए एक ढाल पैटर्न कैसे लागू किया जाए। यहां, हम एक सर्कल और एक टेक्स्ट नोड बना रहे हैं और उनके लिए रैखिक ढाल पैटर्न लागू कर रहे हैं।

इस कोड को नाम वाली फ़ाइल में सहेजें LinearGradientExample.java

import javafx.application.Application; 
import javafx.scene.Group; 
import javafx.scene.Scene; 

import javafx.scene.paint.Color; 
import javafx.scene.paint.CycleMethod; 
import javafx.scene.paint.LinearGradient; 
import javafx.scene.paint.Stop; 

import javafx.stage.Stage; 
import javafx.scene.shape.Circle; 
import javafx.scene.text.Font; 
import javafx.scene.text.Text; 
         
public class LinearGradientExample extends Application { 
   @Override 
   public void start(Stage stage) {           
      //Drawing a Circle 
      Circle circle = new Circle();    
      
      //Setting the properties of the circle 
      circle.setCenterX(300.0f);  
      circle.setCenterY(180.0f); 
      circle.setRadius(90.0f); 
      
      //Drawing a text 
      Text text = new Text("This is a colored circle"); 
      
      //Setting the font of the text 
      text.setFont(Font.font("Edwardian Script ITC", 55)); 
      
      //Setting the position of the text 
      text.setX(140); 
      text.setY(50); 
       
      //Setting the linear gradient 
      Stop[] stops = new Stop[] { 
         new Stop(0, Color.DARKSLATEBLUE),  
         new Stop(1, Color.DARKRED)
      };  
      LinearGradient linearGradient = 
         new LinearGradient(0, 0, 1, 0, true, CycleMethod.NO_CYCLE, stops); 
       
      //Setting the linear gradient to the circle and text 
      circle.setFill(linearGradient); 
      text.setFill(linearGradient); 
         
      //Creating a Group object  
      Group root = new Group(circle, text); 
         
      //Creating a scene object 
      Scene scene = new Scene(root, 600, 300);  
      
      //Setting title to the Stage 
      stage.setTitle("Linear Gradient Example"); 
         
      //Adding scene to the stage 
      stage.setScene(scene); 
         
      //Displaying the contents of the stage 
      stage.show(); 
   }      
   public static void main(String args[]){ 
      launch(args); 
   } 
}

निम्न कमांड का उपयोग करके कमांड प्रॉम्प्ट से सहेजे गए जावा फ़ाइल को संकलित और निष्पादित करें।

Javac LinearGradientExample.java 
java LinearGradientExample

निष्पादित करने पर, उपरोक्त कार्यक्रम एक JavaFX विंडो बनाता है जो निम्नानुसार है -

रेडियल ग्रेडिएंट पैटर्न लागू करना

नोड्स के लिए एक रेडियल ग्रेडिएंट पैटर्न लागू करने के लिए, तत्काल GradientPattern वर्ग और उसके ऑब्जेक्ट को पास करें setFill(), setStroke() तरीकों।

इस वर्ग का निर्माता कुछ मापदंडों को स्वीकार करता है, जिनमें से कुछ हैं -

  • startX, startY - ये दोहरे गुण ढाल के प्रारंभिक बिंदु के x और y निर्देशांक का प्रतिनिधित्व करते हैं।

  • endX, endY - ये दोहरे गुण ग्रेडिएंट के अंतिम बिंदु के x और y निर्देशांक का प्रतिनिधित्व करते हैं।

  • cycleMethod - यह तर्क परिभाषित करता है कि रंग ढाल सीमा के बाहर के क्षेत्रों को कैसे शुरू और समाप्त होने वाले बिंदुओं से परिभाषित किया जाता है और उन्हें कैसे भरा जाना चाहिए।

  • proportional- यह एक बूलियन चर है; इस संपत्ति को स्थापित करने के लिएtrue प्रारंभ और अंत स्थानों को एक अनुपात में सेट किया गया है।

  • Stops - यह तर्क ढाल लाइन के साथ रंग-रोक बिंदुओं को परिभाषित करता है।

//Setting the radial gradient 
Stop[] stops = new Stop[] { 
   new Stop(0.0, Color.WHITE),  
   new Stop(0.3, Color.RED), 
   new Stop(1.0, Color.DARKRED) 
};        

RadialGradient radialGradient = 
   new RadialGradient(0, 0, 300, 178, 60, false, CycleMethod.NO_CYCLE, stops);

उदाहरण

निम्नलिखित एक उदाहरण है जो दर्शाता है कि जावाएफएक्स में नोड्स के लिए एक रेडियल ग्रेडिएंट पैटर्न कैसे लागू किया जाए। यहां, हम एक सर्कल और एक टेक्स्ट नोड बना रहे हैं और उनके लिए ढाल पैटर्न लागू कर रहे हैं।

इस कोड को नाम वाली फ़ाइल में सहेजें RadialGradientExample.java

import javafx.application.Application; 
import javafx.scene.Group; 
import javafx.scene.Scene; 

import javafx.scene.paint.Color; 
import javafx.scene.paint.CycleMethod; 
import javafx.scene.paint.RadialGradient;  
import javafx.scene.paint.Stop; 

import javafx.stage.Stage; 
import javafx.scene.shape.Circle; 
import javafx.scene.text.Font; 
import javafx.scene.text.Text;   

public class RadialGradientExample extends Application {  
   @Override 
   public void start(Stage stage) { 
      //Drawing a Circle 
      Circle circle = new Circle(); 
      
      //Setting the properties of the circle 
      circle.setCenterX(300.0f); 
      circle.setCenterY(180.0f); 
      circle.setRadius(90.0f);  
      
      //Drawing a text 
      Text text = new Text("This is a colored circle"); 
      
      //Setting the font of the text 
      text.setFont(Font.font("Edwardian Script ITC", 50)); 
      
      //Setting the position of the text 
      text.setX(155); 
      text.setY(50);  
      
      //Setting the radial gradient 
      Stop[] stops = new Stop[] { 
         new Stop(0.0, Color.WHITE),  
         new Stop(0.3, Color.RED), 
         new Stop(1.0, Color.DARKRED) 
      };        
      RadialGradient radialGradient = 
         new RadialGradient(0, 0, 300, 178, 60, false, CycleMethod.NO_CYCLE, stops);  
      
      //Setting the radial gradient to the circle and text 
      circle.setFill(radialGradient); 
      text.setFill(radialGradient);  
      
      //Creating a Group object  
      Group root = new Group(circle, text);  
      
      //Creating a scene object 
      Scene scene = new Scene(root, 600, 300); 
      
      //Setting title to the Stage 
      stage.setTitle("Radial Gradient Example");  
      
      //Adding scene to the stage 
      stage.setScene(scene);  
      
      //Displaying the contents of the stage 
      stage.show(); 
   }
   public static void main(String args[]) { 
      launch(args); 
   } 
}

निम्न कमांड का उपयोग करके कमांड प्रॉम्प्ट से सहेजे गए जावा फ़ाइल को संकलित और निष्पादित करें।

Javac RadialGradientExample.java 
java RadialGradientExample

निष्पादित करने पर, उपरोक्त कार्यक्रम एक JavaFX विंडो बनाता है जो निम्नानुसार है -