JavaFX তে Dialog এবং Alert ব্যবহার করে ব্যবহারকারীর সাথে ইন্টারঅ্যাক্ট করতে পারেন। আপনি JavaFX Alert ব্যবহার করে সাধারণ ডায়ালগ তৈরি করতে পারেন, এবং Custom Dialog তৈরি করার মাধ্যমে আরও কাস্টমাইজড ইন্টারফেস তৈরি করতে পারেন। এই উদাহরণগুলোতে আমরা কিভাবে এই দুটি তৈরি করা যায় তা দেখাবো।
১. JavaFX Alert তৈরি করা
Alert JavaFX এর একটি প্রি-বিল্ট ক্লাস যা ডায়ালগ বক্স তৈরি করতে ব্যবহৃত হয়। এটি সাধারণত ইনফরমেশন, কনফার্মেশন, সতর্কতা, অথবা ত্রুটি বার্তা দেখানোর জন্য ব্যবহৃত হয়।
Alert Example:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Alert;
import javafx.scene.control.Alert.AlertType;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class AlertExample extends Application {
@Override
public void start(Stage primaryStage) {
Button btn = new Button("Show Alert");
// Button এর উপর ক্লিক করলে Alert দেখাবে
btn.setOnAction(e -> {
// Alert তৈরি
Alert alert = new Alert(AlertType.INFORMATION); // ইনফরমেশন টাইপ
alert.setTitle("Information Dialog");
alert.setHeaderText("This is an info alert");
alert.setContentText("Hello! This is a JavaFX alert.");
alert.showAndWait(); // Alert দেখানোর জন্য
});
StackPane root = new StackPane();
root.getChildren().add(btn);
Scene scene = new Scene(root, 300, 250);
primaryStage.setTitle("JavaFX Alert Example");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
ব্যাখ্যা:
- এখানে
Alertক্লাসটি ইনফরমেশন ডায়ালগ তৈরি করতে ব্যবহৃত হয়েছে। AlertType.INFORMATIONডায়ালগের টাইপ সেট করে, যেমনINFORMATION,CONFIRMATION,WARNING,ERRORইত্যাদি।alert.setTitle(),alert.setHeaderText(), এবংalert.setContentText()এর মাধ্যমে আপনি ডায়ালগের টাইটেল, হেডার এবং কন্টেন্ট টেক্সট কনফিগার করতে পারেন।alert.showAndWait()মেথড ডায়ালগটিকে প্রদর্শন করে।
২. Custom Dialog তৈরি করা
Custom Dialog তৈরি করতে আপনাকে Dialog ক্লাস এবং বিভিন্ন কন্ট্রোল (যেমন TextField, Button) ব্যবহার করতে হবে। এটি আপনাকে সম্পূর্ণ কাস্টম ডায়ালগ তৈরি করার সুযোগ দেয়।
Custom Dialog Example:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Dialog;
import javafx.scene.control.TextField;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class CustomDialogExample extends Application {
@Override
public void start(Stage primaryStage) {
Button btn = new Button("Open Custom Dialog");
btn.setOnAction(e -> {
// Custom Dialog তৈরি
Dialog<String> dialog = new Dialog<>();
dialog.setTitle("Custom Input Dialog");
// TextField যোগ করা
TextField textField = new TextField();
textField.setPromptText("Enter your name");
// Dialog এর কন্টেন্ট সেট করা
dialog.getDialogPane().setContent(textField);
// OK এবং Cancel বাটন যুক্ত করা
dialog.getDialogPane().getButtonTypes().addAll(ButtonType.OK, ButtonType.CANCEL);
// OK বাটন ক্লিক করার পর ইনপুট গ্রহণ
dialog.setResultConverter(dialogButton -> {
if (dialogButton == ButtonType.OK) {
return textField.getText();
}
return null;
});
// Dialog দেখানো
dialog.showAndWait().ifPresent(result -> {
System.out.println("User Input: " + result);
});
});
StackPane root = new StackPane();
root.getChildren().add(btn);
Scene scene = new Scene(root, 300, 250);
primaryStage.setTitle("JavaFX Custom Dialog Example");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
ব্যাখ্যা:
- Custom Dialog তৈরি করতে
Dialog<T>ক্লাস ব্যবহার করা হয়েছে। এখানেStringটাইপ ব্যবহার করা হয়েছে, কারণ আমরা টেক্সট ইনপুট নিতে চাই। - TextField ব্যবহার করে ব্যবহারকারীর নাম ইনপুট নেওয়া হচ্ছে।
ButtonType.OKএবংButtonType.CANCELবাটন টাইপ ব্যবহার করা হয়েছে ডায়ালগ বক্সে।setResultConverter()মেথড ব্যবহার করে আমরা OK বাটন ক্লিক করলে ব্যবহারকারীর ইনপুট সংগ্রহ করছি।showAndWait()মেথড ব্যবহার করে ডায়ালগটি প্রদর্শন করা হয় এবংifPresent()এর মাধ্যমে ইনপুট সংগ্রহ করা হয়।
৩. Custom Dialog এ Multiple Inputs
আপনি চাইলে TextField, ComboBox, RadioButton, অথবা অন্যান্য UI উপাদানও ব্যবহার করতে পারেন, যাতে একাধিক ইনপুট গ্রহণ করা যায়।
Multiple Input Custom Dialog Example:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class MultiInputCustomDialogExample extends Application {
@Override
public void start(Stage primaryStage) {
Button btn = new Button("Open Multi Input Dialog");
btn.setOnAction(e -> {
// Custom Dialog তৈরি
Dialog<String> dialog = new Dialog<>();
dialog.setTitle("Custom Multi Input Dialog");
// VBox লেআউট
VBox vbox = new VBox();
TextField nameField = new TextField();
nameField.setPromptText("Enter your name");
ComboBox<String> genderComboBox = new ComboBox<>();
genderComboBox.getItems().addAll("Male", "Female");
vbox.getChildren().addAll(new Label("Name:"), nameField, new Label("Gender:"), genderComboBox);
// Dialog এর কন্টেন্ট সেট করা
dialog.getDialogPane().setContent(vbox);
// OK এবং Cancel বাটন যুক্ত করা
dialog.getDialogPane().getButtonTypes().addAll(ButtonType.OK, ButtonType.CANCEL);
// OK বাটন ক্লিক করার পর ইনপুট গ্রহণ
dialog.setResultConverter(dialogButton -> {
if (dialogButton == ButtonType.OK) {
return "Name: " + nameField.getText() + ", Gender: " + genderComboBox.getValue();
}
return null;
});
// Dialog দেখানো
dialog.showAndWait().ifPresent(result -> {
System.out.println(result);
});
});
VBox root = new VBox();
root.getChildren().add(btn);
Scene scene = new Scene(root, 300, 250);
primaryStage.setTitle("JavaFX Multi Input Custom Dialog Example");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
ব্যাখ্যা:
- এখানে আমরা একটি
VBoxলেআউট ব্যবহার করেছি এবংTextFieldএবংComboBoxযোগ করেছি। - ব্যবহারকারী নাম এবং লিঙ্গ ইনপুট দেওয়ার জন্য দুটি ইনপুট ফিল্ড ব্যবহার করতে পারবে।
setResultConverter()মেথডের মাধ্যমে আমরা দুইটি ইনপুট সংগ্রহ করে একত্রে আউটপুট হিসেবে দেখাচ্ছি।
- JavaFX Alert এবং Custom Dialog ব্যবহার করে আপনি JavaFX অ্যাপ্লিকেশনে ব্যবহারকারী ইন্টারঅ্যাকশন সহজে তৈরি করতে পারেন।
- Alert সাধারণত সিস্টেম বার্তা (যেমন ইনফরমেশন, সতর্কতা) দেখানোর জন্য ব্যবহৃত হয়, আর Custom Dialog আপনাকে কাস্টম UI উপাদান দিয়ে ব্যবহারকারীর ইনপুট গ্রহণের সুযোগ দেয়।
- Custom Dialog তৈরি করে আপনি একাধিক ইনপুট (যেমন টেক্সট, কনফার্মেশন, রেডিও বাটন) ব্যবহারকারীর কাছ থেকে সংগ্রহ করতে পারেন এবং সেগুলি প্রক্রিয়া করতে পারেন।
JavaFX এ এই ধরনের কাস্টম ডায়ালগ এবং এলার্ট তৈরি করা আপনাকে একটি সুনির্দিষ্ট এবং ইন্টারঅ্যাকটিভ অ্যাপ্লিকেশন তৈরি করতে সাহায্য করে।
Read more