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 विंडो बनाता है जो निम्नानुसार है -