JavaFX-এ Shape এবং Node দুটি গুরুত্বপূর্ণ কনসেপ্ট যা গ্রাফিক্যাল ইউজার ইন্টারফেস (GUI) এবং গ্রাফিক্স সম্পর্কিত অ্যাপ্লিকেশন তৈরি করতে ব্যবহৃত হয়।
JavaFX এর Scene Graph একটি হায়ারার্কিকাল স্ট্রাকচার, যেখানে প্রতিটি Node একটি ইউজার ইন্টারফেস উপাদান অথবা গ্রাফিক্যাল অবজেক্টের প্রতিনিধিত্ব করে। এই Node গুলো Scene এর মধ্যে গ্রাফিক্যাল কন্টেন্ট বা UI উপাদান হিসেবে প্রদর্শিত হয়। Shape হলো একটি বিশেষ ধরনের Node যা নির্দিষ্ট আকার (shape) বা গ্রাফিক্যাল অবজেক্টকে উপস্থাপন করে, যেমন লাইন, সার্কেল, রেকটেঙ্গল ইত্যাদি।
Shape এবং Node এর মধ্যে সম্পর্ক:
- Node ক্লাস:
- Node হল JavaFX Scene Graph-এর একটি মৌলিক ক্লাস, যা সমস্ত গ্রাফিক্যাল উপাদান (UI কন্ট্রোল, গ্রাফিক্যাল অবজেক্ট) এর বেস ক্লাস।
Nodeক্লাস বিভিন্ন ধরনের Shape, Group, ImageView, Text, Control ইত্যাদি উপাদান ধারণ করে।Nodeক্লাসের মাধ্যমে আপনি অ্যানিমেশন, ইভেন্ট হ্যান্ডলিং, এবং UI উপাদানগুলির অবস্থান পরিবর্তন করতে পারেন।
- Shape ক্লাস:
- Shape হল
Nodeক্লাসের একটি সাবক্লাস যা বিশেষভাবে গ্রাফিক্যাল শেপ (যেমন, রেকটেঙ্গল, সার্কেল, লাইন) আঁকার জন্য ব্যবহৃত হয়। Shapeহল একটি সাধারণ গ্রাফিক্যাল অবজেক্ট যা দৃশ্যমান আকার এবং নির্দিষ্ট বৈশিষ্ট্য যেমন রঙ, সীমানা (border), প্যাডিং ইত্যাদি ধারণ করে।- Shape ক্লাসের মধ্যে বিভিন্ন শেপ যেমন
Circle,Rectangle,Line,Polygonইত্যাদি আছে যা JavaFX এর গ্রাফিক্যাল কন্টেন্টকে ডিজাইন করতে সহায়তা করে।
- Shape হল
Shape এবং Node এর সম্পর্ক:
- Shape ক্লাসটি Node ক্লাসের একটি অংশ, অর্থাৎ সব Shape হলো Node। প্রতিটি Shape একটি Node হিসেবে কাজ করে Scene Graph-এ, কিন্তু Shape বিশেষভাবে গ্রাফিক্যাল আকার (shape) নির্দেশ করার জন্য ডিজাইন করা হয়েছে।
- যেহেতু Shape হল Node ক্লাসের সাবক্লাস, তাই Shape সমস্ত বৈশিষ্ট্য এবং ফিচার ব্যবহার করতে পারে যা Node ক্লাস প্রদান করে, যেমন
translateX,translateY,rotate,scaleইত্যাদি।
Shape এবং Node এর ব্যবহার:
Node ক্লাসের বৈশিষ্ট্য:
- Layout:
setLayoutX(),setLayoutY(),setTranslateX(),setTranslateY()ইত্যাদি ব্যবহার করে আপনার Node গুলোকে কাস্টম অবস্থানে রাখতে পারেন। - Transformation:
setRotate(),setScaleX(),setScaleY()ইত্যাদি ব্যবহার করে আপনি Node এর আকৃতি পরিবর্তন করতে পারেন। - Event Handling:
setOnMouseClicked(),setOnKeyPressed()ইত্যাদি ব্যবহার করে আপনি Node এর ইভেন্ট হ্যান্ডলিং করতে পারেন।
Shape ক্লাসের বৈশিষ্ট্য:
- Shape-এ আপনি গ্রাফিক্যাল আকারগুলি যেমন
Circle,Rectangle,Line,Polygonইত্যাদি তৈরি করতে পারেন। - Shape ক্লাসের মাধ্যমে আপনি বিভিন্ন আকার এবং বৈশিষ্ট্য (যেমন, রঙ, বর্ডার, প্যাডিং, ফিল) কাস্টমাইজ করতে পারেন।
উদাহরণ: Node এবং Shape এর ব্যবহার:
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 ShapeAndNodeExample extends Application {
@Override
public void start(Stage primaryStage) {
// একটি রেকটেঙ্গল (Shape) তৈরি করা
Rectangle rectangle = new Rectangle(100, 50); // আকার ১০০x৫০ পিক্সেল
rectangle.setFill(Color.BLUE); // রঙ নীল
// একটি সার্কেল (Shape) তৈরি করা
Circle circle = new Circle(50); // ব্যাসার্ধ ৫০ পিক্সেল
circle.setFill(Color.RED); // রঙ লাল
// StackPane এ শেপগুলো যোগ করা
StackPane root = new StackPane();
root.getChildren().addAll(rectangle, circle);
// Scene তৈরি করা এবং স্টেজে সেট করা
Scene scene = new Scene(root, 300, 250);
primaryStage.setTitle("JavaFX Shape and Node Example");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
ব্যাখ্যা:
- এখানে
RectangleএবংCircleহল Shape ক্লাসের উদাহরণ। StackPaneএকটি Node যা Rectangle এবং Circle দুটি Shape উপাদানকে ধারণ করে।- Node ক্লাসের মাধ্যমে শেপগুলির অবস্থান, আকার, এবং অন্যান্য বৈশিষ্ট্য নিয়ন্ত্রণ করা হয়েছে।
Shape এবং Node এর মধ্যে পার্থক্য:
- Node একটি সর্বজনীন গ্রাফিক্যাল উপাদান যা কন্ট্রোল, শেপ, গ্রাফিক্স ইত্যাদি সমস্ত ধরনের UI উপাদান ধারণ করতে ব্যবহৃত হয়। অন্যদিকে, Shape বিশেষভাবে গ্রাফিক্যাল আকার বা ভিজ্যুয়াল অবজেক্ট (যেমন লাইন, রেকটেঙ্গল, সার্কেল) এর জন্য ব্যবহৃত হয়।
- Shape একটি Node এর অধীনে থাকে, তাই Shape-এর সমস্ত ফিচার Node এর মাধ্যমে অ্যাক্সেস করা যায়।
নির্দেশিকা:
- Node ক্লাসটি গ্রাফিক্যাল UI উপাদান, ইভেন্ট হ্যান্ডলিং, অবস্থান, আকার এবং রোটেশন নিয়ন্ত্রণ করার জন্য ব্যবহার করা হয়, তবে Shape শুধুমাত্র গ্রাফিক্যাল অবজেক্ট তৈরি করতে ব্যবহৃত হয়।
- আপনি JavaFX অ্যাপ্লিকেশনে Shape ক্লাসের বিভিন্ন গ্রাফিক্যাল উপাদান (যেমন,
Circle,Rectangle,Line,Polygon) ব্যবহার করতে পারবেন, এবং এগুলো Node ক্লাসের একটি সাবক্লাস হিসেবে Scene গ্রাফে প্রদর্শিত হবে।
সারাংশ:
- Node হল JavaFX এর গ্রাফিক্যাল ইউজার ইন্টারফেসের মৌলিক উপাদান, যা UI কন্ট্রোল এবং গ্রাফিক্যাল অবজেক্ট গুলোকে ধারণ করে।
- Shape হল Node এর একটি বিশেষ ধরনের ক্লাস যা শুধুমাত্র গ্রাফিক্যাল আকার তৈরি করার জন্য ব্যবহৃত হয়।
- Shape সবসময় Node এর একটি অংশ, এবং JavaFX Scene Graph-এ Shape গুলো Node হিসেবে ব্যবহৃত হয়।
এভাবেই Node এবং Shape এর মধ্যে সম্পর্ক কাজ করে, যেখানে Shape হল Node এর একটি বিশেষ কেস, যা শুধুমাত্র আকার বা ভিজ্যুয়াল অবজেক্ট তৈরি করতে ব্যবহৃত হয়।
Read more