JavaFX-এ Shape একটি Node (যা Scene Graph এর একটি অংশ) যা 2D গ্রাফিক্স উপাদান বা আকৃতি তৈরি করে, যেমন Circle, Rectangle, Line, Polygon ইত্যাদি। Shapes JavaFX অ্যাপ্লিকেশনগুলির মধ্যে গ্রাফিক্স তৈরি করতে ব্যবহৃত হয়, এবং এগুলোর বিভিন্ন বৈশিষ্ট্য বা properties এবং styling techniques দিয়ে এগুলোর ডিজাইন কাস্টমাইজ করা যেতে পারে।
Shape এবং Node এর মধ্যে সম্পর্ক:
- Shape হল Node এর একটি বিশেষ সাবক্লাস। প্রতিটি Shape একটি
Nodeএর মতোই কাজ করে এবং গ্রাফিক্সের জন্য এটি একটি বিশেষ ধরনেরNode। Nodeহলো JavaFX-এর এমন একটি মৌলিক ক্লাস যা Scene Graph-এ সমস্ত UI উপাদান বা কন্ট্রোলের জন্য ভিত্তি তৈরি করে।- Shape ক্লাসে বিভিন্ন গ্রাফিক্যাল আকৃতি (যেমন Circle, Rectangle, Line, Polygon) এর জন্য নির্দিষ্ট ফিচার এবং মেথড রয়েছে।
Shape Properties:
Shape ক্লাসে বেশ কিছু properties রয়েছে, যা আপনি কাস্টমাইজ করতে পারেন। কিছু গুরুত্বপূর্ণ properties হল:
fill: এই প্রপার্টি দিয়ে আকৃতির অভ্যন্তরীণ রঙ (fill color) নির্ধারণ করা হয়। উদাহরণস্বরূপ, আপনি একটি রঙিন বৃত্ত বা বর্গাকার আকৃতি তৈরি করতে পারেন।stroke: আকৃতির বাইরের সীমানা বা বর্ডার এর রঙ এবং প্রস্থ নির্ধারণ করে।strokeWidth: আকৃতির সীমানার প্রস্থ নির্ধারণ করে।opacity: আকৃতির স্বচ্ছতা বা অস্বচ্ছতার মান নির্ধারণ করে। এটি 0.0 থেকে 1.0 এর মধ্যে হতে পারে (0.0 মানে সম্পূর্ণ স্বচ্ছ এবং 1.0 মানে সম্পূর্ণ অস্বচ্ছ)।rotate: আকৃতি ঘোরানো (rotate) করা। এটি একটি ডিগ্রি মান গ্রহণ করে এবং Shape কে নির্দিষ্ট ডিগ্রি ঘোরায়।scaleXএবংscaleY: আকৃতির আকারকে এক্স ও ওয়াই অক্ষ বরাবর বৃদ্ধি বা কমানো (scale) করার জন্য ব্যবহৃত হয়।translateXএবংtranslateY: আকৃতির অবস্থান বা স্থানান্তর (translation) নির্ধারণ করে।
Styling Techniques:
JavaFX-এ Shape এর স্টাইলিং করার জন্য আপনি CSS ব্যবহার করতে পারেন। JavaFX CSS স্টাইলিং, HTML CSS স্টাইলিংয়ের মতোই কাজ করে, এবং এতে আপনি আকৃতির ডিজাইনকে আরও পরিপূর্ণ করতে পারেন। CSS এর মাধ্যমে আপনি Shape এর ফিল, স্ট্রোক, ব্যাকগ্রাউন্ড, প্যাডিং ইত্যাদি কাস্টমাইজ করতে পারেন।
Shape Styling Techniques with CSS:
JavaFX এর CSS স্টাইলিং ব্যবহার করে আপনি গ্রাফিক্যাল শেপগুলিকে সজ্জিত করতে পারেন। CSS ব্যবহার করে Shape এর স্টাইল সেট করা হয়।
CSS Styling Example:
/* Styling for Circle */
.circle {
-fx-fill: #3498db; /* Fill color (blue) */
-fx-stroke: #2980b9; /* Stroke color (dark blue) */
-fx-stroke-width: 5; /* Stroke width */
-fx-opacity: 0.8; /* Opacity */
}
/* Styling for Rectangle */
.rectangle {
-fx-fill: yellow; /* Fill color (yellow) */
-fx-stroke: green; /* Stroke color (green) */
-fx-stroke-width: 3; /* Stroke width */
-fx-opacity: 0.9; /* Opacity */
}
JavaFX Shape Styling Example:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Circle;
import javafx.scene.shape.Rectangle;
import javafx.stage.Stage;
public class ShapeStylingExample extends Application {
@Override
public void start(Stage primaryStage) {
// Circle তৈরি
Circle circle = new Circle(50, Color.BLUE);
circle.setStroke(Color.DARKBLUE);
circle.setStrokeWidth(5);
// Rectangle তৈরি
Rectangle rectangle = new Rectangle(100, 50, Color.YELLOW);
rectangle.setStroke(Color.GREEN);
rectangle.setStrokeWidth(3);
// StackPane এর মধ্যে শেপগুলি যুক্ত করা
StackPane root = new StackPane();
root.getChildren().addAll(circle, rectangle);
// Scene তৈরি এবং স্টাইলিং প্রয়োগ করা
Scene scene = new Scene(root, 300, 250);
scene.getStylesheets().add(getClass().getResource("style.css").toExternalForm());
primaryStage.setTitle("Shape Styling Example");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
Important Shape Properties and CSS Styling Examples:
-fx-fill: আকৃতির অভ্যন্তরীণ রঙ নির্ধারণ করতে ব্যবহৃত হয়। এটি ফিল রঙকে সেট করে (যেমন,-fx-fill: #3498db;- নীল রঙ)।-fx-stroke: আকৃতির সীমানার রঙ নির্ধারণ করে। উদাহরণস্বরূপ,-fx-stroke: #2980b9;এটি সীমানার রঙ নীল করবে।-fx-stroke-width: আকৃতির সীমানার প্রস্থ নির্ধারণ করে। যেমন-fx-stroke-width: 5;৫ পিক্সেল সীমানা প্রস্থ হবে।-fx-opacity: আকৃতির স্বচ্ছতা নির্ধারণ করে। উদাহরণস্বরূপ,-fx-opacity: 0.7;৭০% অস্বচ্ছতা থাকবে (এটি 0.0 থেকে 1.0 পর্যন্ত হতে পারে)।-fx-translateXand-fx-translateY: আকৃতির স্থানান্তর (translation) প্রপার্টি। এটি আকৃতির অবস্থান পরিবর্তন করতে ব্যবহৃত হয়।-fx-rotate: আকৃতির ঘূর্ণন (rotation) নির্ধারণ করে। এটি deg (ডিগ্রি) দিয়ে ঘূর্ণন তৈরি করে।
CSS Styling Techniques for Shape:
- Shape Properties via CSS: JavaFX Shapes-এর সমস্ত স্টাইলিং CSS এর মাধ্যমে করা যেতে পারে। যেমন,
-fx-fill,-fx-stroke,-fx-opacity,-fx-rotate,-fx-translateXইত্যাদি CSS প্রপার্টি ব্যবহার করে আপনি Shape এর স্টাইল কাস্টমাইজ করতে পারেন। - Gradients: আপনি
linear-gradientবাradial-gradientব্যবহার করে Shape-এর ভিতরের রঙ পরিবর্তন করতে পারেন।
.circle {
-fx-fill: linear-gradient(from 0% 0% to 100% 100%, red, yellow);
-fx-stroke: black;
-fx-stroke-width: 3;
}
- Effect: আপনি JavaFX-এর বিভিন্ন effect ব্যবহার করে Shape-এর উপর অতিরিক্ত এফেক্ট প্রয়োগ করতে পারেন, যেমন
DropShadow,Glow,Reflectionইত্যাদি।
.circle {
-fx-fill: red;
-fx-effect: dropshadow(gaussian, black, 10, 0, 2, 2);
}
JavaFX Shapes ক্লাস এবং এর প্রপার্টিজ দিয়ে আপনি গ্রাফিক্স এবং 2D আকৃতিগুলি কাস্টমাইজ এবং স্টাইল করতে পারেন। CSS ব্যবহার করে আকৃতির রঙ, সীমানা, ঘূর্ণন, স্থানান্তর, এবং অন্যান্য ভিজ্যুয়াল এফেক্ট যোগ করা সম্ভব। CSS ও JavaFX এর শক্তিশালী স্টাইলিং টুলস ব্যবহার করে আপনি খুব সহজে আকৃতির ডিজাইন পরিবর্তন করতে পারেন এবং আকর্ষণীয় UI উপাদান তৈরি করতে পারেন।
Read more