Sponsored

জাভা গ্রাফ্রিক্যাল ইন্টারফেস - JavaFX ChoiceBox

0
2

ChoiceBox দিয়ে একের অধিক আইটেম থেকে যে কোন একটা আইটেম সিলেক্ট করা যায়। এই উদাহরণে IDE হিসেবে IntelliJ IDEA ব্যবহার করা হয়েছে। IntelliJ তে একটা JavaFX প্রজেক্ট তৈরি করে নিব। এরপর সীন বিল্ডার এ একটা ChoiceBox যুক্ত করব, এরপর একটা আইডি দিব। বা নিচের কোড গুলো ব্যবহার করলেও হবেঃ

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.collections.FXCollections?>
<?import javafx.scene.control.ChoiceBox?>
<?import javafx.scene.layout.GridPane?>
<?import java.lang.String?>
<GridPane alignment="center" hgap="10" vgap="10" xmlns="http://javafx.com/javafx/8.0.112" xmlns:fx="http://javafx.com/fxml/1" fx:controller="sample.Controller">
   <ChoiceBox fx:id="choicebox" value="Value 3">
      <items>
         <FXCollections fx:factory="observableArrayList">
            <String fx:value="Value 1" />
            <String fx:value="Value 2" />
            <String fx:value="Value 3" />
         </FXCollections>
      </items>
   </ChoiceBox>
</GridPane>

ChoiceBox তৈরির পাশাপাশি কয়েকটা ভ্যালু সেট করে দিয়েছি। এবং ডিফল্ট একটা ভ্যালুও সেট করে দিয়েছি। এখন ChoiceBox এ যদি কোন চেঞ্জ হয়, তা আমরা দেখতে পারি এভাবেঃ

choiceBox.valueProperty().addListener(new ChangeListener<String>() {
            @Override
            public void changed(ObservableValue observableValue, String oldValue, String newValue) {
                
            }
        });

কোন ভ্যালু চেঞ্জ হলে আমরা যে যে কোন কাজ করতে পারি। সম্পুর্ণ Java ফাইলঃ

import javafx.application.Application;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.ChoiceBox;
import javafx.stage.Stage;

public class Main extends Application {

    @Override
    public void start(Stage primaryStage) throws Exception {
        Parent root = FXMLLoader.load(getClass().getResource("sample.fxml"));
        primaryStage.setTitle("ChoiceBox demo");
        primaryStage.setScene(new Scene(root, 300, 275));
        primaryStage.show();


        ChoiceBox choiceBox = (ChoiceBox) root.lookup("#choicebox");


        choiceBox.valueProperty().addListener(new ChangeListener<String>() {
            @Override
            public void changed(ObservableValue observableValue, String oldValue, String newValue) {
                System.out.println(observableValue);
                System.out.println(oldValue);
                System.out.println(newValue);
            }
        });

    }


    public static void main(String[] args) {
        launch(args);
    }
}

আমরা যদি সিলেক্টেড আইটেমের ভ্যালু নিতে চাই, তা নিতে পারি এভাবেঃ

choiceBox.getSelectionModel().getSelectedItem()

আবার কোন ইনডেক্স টি সিলেক্টেড আছে, তা পেতে পারি এভাবেঃ

choiceBox.getSelectionModel().getSelectedIndex()

আমরা চাইলে ডিফল্ট ভাবে কোন ভ্যালু সেট না করে জাভা থেকে ভ্যালু গুলো সেট করতে পারি। তার জন্য fxml এ শুধু মাত্র ChoiceBox মার্কয়াপ যুক্ত করব এবং একটা আইডি দিবঃ

 <ChoiceBox fx:id="choicebox" prefWidth="150.0" />

এরপর ChoiceBox টা একটা ভ্যারিয়েবলে সেট করব। এবং এরপর আমরা যে জাভা থেকে ভ্যালু সেট সহ সব কিছু করতে পারবঃ

        ChoiceBox choiceBox = (ChoiceBox) root.lookup("#choicebox");

        choiceBox.getItems().addAll("Value 1", "Value 2", "Value 3");
        choiceBox.getSelectionModel().select("Value 1");
Search
Categories
Read More
Hacking Course
ভিভো V27e ফোন এলো সুন্দর ডিজাইন নিয়ে বিশ্বজয় করতে
চলে এলো ভিভোর আরেকটি নতুন ফোন। ভিভো ভি২৭ই নামের ভিভোর ভি সিরিজের এই ফোন সম্পর্কে জানবেন এই...
By Nettumi 2026-09-25 09:50:34 0 21
Nulled
FoodKing v2.2 - Restaurant Food Delivery System Merchant Flutter Mobile App Source - Nulled PHP Scripts
FoodKing v2.2 – Restaurant Food Delivery System Merchant Flutter Mobile App Source Code...
By Nettumi 2026-09-17 18:13:32 0 58
Nulled
Infinite v4.4 Nulled - Blog & Magazine Script - PHP Scripts
Infinite v4.4 Nulled – Blog & Magazine PHP Script Free Download. Infinite is a...
By Nettumi 2026-09-17 19:02:30 0 39
Nulled
Loveria v3.9.0 Nulled - Premium Dating Script - Software - Admin Panel
Loveria v3.9.0 Nulled – Premium Dating Script – Software – Admin Panel Script...
By Nettumi 2026-09-17 18:17:25 0 31
Tech
সেন্টমার্টিন এবং কক্সবাজার ভ্রমণ - সেপ্টেম্বর ২০১৪
এবার আমার সেন্টমার্টিন বা কক্সবাজার কোথাও যাওয়ার ইচ্ছে ছিল না। এবার যাওয়ার ইচ্ছে ছিল কুয়াকাটা।...
By Nettumi 2026-09-30 18:43:59 0 1
‎ ‎ ‎
Nettumi https://nettumi.com