JavaFX | RadioButton с примерами

Опубликовано: 13 Февраля, 2022

RadioButton - это часть пакета JavaFx. RadioButton в основном используются для создания серии элементов, из которых можно выбрать только один. Когда радиокнопка нажата и отпущена, отправляется событие действия, это событие действия может быть обработано с помощью обработчика событий.
RadioButton можно добавить в Toggle Group, чтобы пользователь не мог выбрать более одного элемента. По умолчанию переключатель не является частью какой-либо группы переключателей. Выбранный элемент группы переключения можно найти с помощью функции getSelectedToggle ().

Конструкторы класса RadioButton :

  1. RadioButton () : создает переключатель с пустой строкой для его метки.
  2. RadioButton (String t) : создает переключатель с указанным текстом в качестве метки

Обычно используемые методы :

метод объяснение
getText () возвращает textLabel для радиокнопки
isSelected () возвращает, выбран ли радиокнопка или нет
setSelected (логическое b) устанавливает, выбран ли радиокнопка или нет
setToggleGroup (ToggleGroup tg) устанавливает группу переключения для переключателя
Огонь() Переключает состояние переключателя тогда и только тогда, когда RadioButton еще не выбран или не является частью ToggleGroup.

Below programs illustrate the RadioButton class:

  • Program to create RadioButton and add it to the stage: This program creates a RadioButton indicated by the name r1, r2, r3. The radio button will be created inside a scene, which in turn will be hosted inside a stage (which is the top level JavaFX container). The function setTitle() is used to provide title to the stage. Then a tile-pane is created, on which addChildren() method is called to attach the radio button inside the scene, along with the resolution specified by (200, 200) in the code. Finally, the show() method is called to display the final results.
    // Java program to create RadioButton and add it to the stage
    import javafx.application.Application;
    import javafx.scene.Scene;
    import javafx.scene.control.*;
    import javafx.scene.layout.*;
    import javafx.event.ActionEvent;
    import javafx.event.EventHandler;
    import javafx.collections.*;
    import javafx.stage.Stage;
    import javafx.scene.text.Text.*;
    import javafx.scene.text.*;
    public class radiobutton extends Application {
      
        // launch the application
        public void start(Stage s)
        {
            // set title for the stage
            s.setTitle("creating RadioButton");
      
            // create a tile pane
            TilePane r = new TilePane();
      
            // create a label
            Label l = new Label("This is a Radiobutton example ");
      
            // create radiobuttons
            RadioButton r1 = new RadioButton("male");
            RadioButton r2 = new RadioButton("female");
            RadioButton r3 = new RadioButton("others");
      
            // add label
            r.getChildren().add(l);
            r.getChildren().add(r1);
            r.getChildren().add(r2);
            r.getChildren().add(r3);
      
            // create a scene
            Scene sc = new Scene(r, 200, 200);
      
            // set the scene
            s.setScene(sc);
      
            s.show();
        }
      
        public static void main(String args[])
        {
            // launch the application
            launch(args);
        }
    }

    Output:

  • Program to create RadioButton and add it to a ToggleGroup: This program creates a RadioButton indicated by the name r1, r2, r3. The radio button will be created inside a scene, which in turn will be hosted inside a stage (which is the top level JavaFX container). The function setTitle() is used to provide title to the stage. A toggle group is created and the radio buttons are added to the toggle group using setToggleGroup() function. Then a tile-pane is created, on which addChildren() method is called to attach the radio button inside the scene, along with the resolution specified by (200, 200) in the code. Finally, the show() method is called to display the final results.
    // Java Program to create RadioButton and add it to a ToggleGroup
    import javafx.application.Application;
    import javafx.scene.Scene;
    import javafx.scene.control.*;
    import javafx.scene.layout.*;
    import javafx.event.ActionEvent;
    import javafx.event.EventHandler;
    import javafx.collections.*;
    import javafx.stage.Stage;
    import javafx.scene.text.Text.*;
    import javafx.scene.text.*;
    public class radiobutton_1 extends Application {
        // labels
        Label l;
      
        // launch the application
        public void start(Stage s)
        {
            // set title for the stage
            s.setTitle("creating RadioButton");
      
            // create a tile pane
            TilePane r = new TilePane();
      
            // create a label
            l = new Label("This is a Radiobutton example ");
      
            // create a toggle group
            ToggleGroup tg = new ToggleGroup();
      
            // create radiobuttons
            RadioButton r1 = new RadioButton("male");
            RadioButton r2 = new RadioButton("female");
            RadioButton r3 = new RadioButton("others");
      
            // add radiobuttons to toggle group
            r1.setToggleGroup(tg);
            r2.setToggleGroup(tg);
            r3.setToggleGroup(tg);
      
            // add label
            r.getChildren().add(l);
            r.getChildren().add(r1);
            r.getChildren().add(r2);
            r.getChildren().add(r3);
      
            // create a scene
            Scene sc = new Scene(r, 200, 200);
      
            // set the scene
            s.setScene(sc);
      
            s.show();
        }
      
        public static void main(String args[])
        {
            // launch the application
            launch(args);
        }
    }

    Output:

  • Program to create RadioButton, add it to a ToggleGroup and add a listener to it: This program creates a RadioButton indicated by the name r1, r2, r3. The radio button will be created inside a scene, which in turn will be hosted inside a stage (which is the top level JavaFX container). The function setTitle() is used to provide title to the stage. A toggle group is created and the radio buttons are added to the toggle group using setToggleGroup() function. A label l2 is created to show which radio button is selected. A change listener is added to handle any change in the selection of the radio buttons (using the addListener() function). The change in selection is depicted by changing the text of label l2. Then a tile-pane is created, on which addChildren() method is called to attach the radio button inside the scene, along with the resolution specified by (200, 200) in the code. Finally, the show() method is called to display the final results.
    // Java Program to create RadioButton, add it to a ToggleGroup and add a listener to it
    import javafx.application.Application;
    import javafx.scene.Scene;
    import javafx.scene.control.*;
    import javafx.scene.layout.*;
    import javafx.event.ActionEvent;
    import javafx.event.*;
    import javafx.collections.*;
    import javafx.stage.Stage;
    import javafx.scene.text.Text.*;
    import javafx.scene.text.*;
    import javafx.beans.value.*;
    public class radiobutton_2 extends Application {
      
        // launch the application
        public void start(Stage s)
        {
            // set title for the stage
            s.setTitle("creating RadioButton");
      
            // create a tile pane
            TilePane r = new TilePane();
      
            // create a label
            Label l = new Label("This is a Radiobutton example ");
            Label l2 = new Label("nothing selected");
      
            // create a toggle group
            ToggleGroup tg = new ToggleGroup();
      
            // create radiobuttons
            RadioButton r1 = new RadioButton("male");
            RadioButton r2 = new RadioButton("female");
            RadioButton r3 = new RadioButton("others");
      
            // add radiobuttons to toggle group
            r1.setToggleGroup(tg);
            r2.setToggleGroup(tg);
            r3.setToggleGroup(tg);
      
            // add label
            r.getChildren().add(l);
            r.getChildren().add(r1);
            r.getChildren().add(r2);
            r.getChildren().add(r3);
            r.getChildren().add(l2);
      
            // create a scene
            Scene sc = new Scene(r, 200, 200);
      
            // add a change listener
            tg.selectedToggleProperty().addListener(new ChangeListener<Toggle>() 
            {
                public void changed(ObservableValue<? extends Toggle> ob, 
                                                        Toggle o, Toggle n)
                {
      
                    RadioButton rb = (RadioButton)tg.getSelectedToggle();
      
                    if (rb != null) {
                        String s = rb.getText();
      
                        // change the label
                        l2.setText(s + " selected");
                    }
                }
            });
      
            // set the scene
            s.setScene(sc);
      
            s.show();
        }
      
        public static void main(String args[])
        {
            // launch the application
            launch(args);
        }
    }

    Output:

    Note: The above programs will not run in an online IDE please use an offline compiler
    Reference: https://docs.oracle.com/javase/8/javafx/api/javafx/scene/control/RadioButton.html

    Attention reader! Don’t stop learning now. Get hold of all the important Java Foundation and Collections concepts with the Fundamentals of Java and Java Collections Course at a student-friendly price and become industry ready. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.