devstory

Le Tutoriel de JavaFX RadioButton

  1. JavaFX RadioButton
  2. Exemple de RadioButton
  3. Traitement des événements pour RadioButton

1. JavaFX RadioButton

RadioButton est une classe étendue de ToggleButton, la même que ToggleButton, RadioButton a deux états qui sont sélectionné et désélectionné. Lorsque les RadioButton sont combinés (combined) en groupe, à ce moment un seul radio button est sélectionné. Contrairement à ToggleButton, des utilisateurs ne peuvent que désélectionner un RadioButton en sélectionnant un autre RadioButton dans le même groupe.
ToggleButton:
RadioButton:
// Group
ToggleGroup group = new ToggleGroup();

// Radio 1: Male
RadioButton button1 = new RadioButton("Male");
button1.setToggleGroup(group);
button1.setSelected(true);

// Radio 3: Female.
RadioButton button2 = new RadioButton("Female");
button2.setToggleGroup(group);
Vous pouvez également définir les icônes de RadioButton par des méthodes setGraphic
InputStream is1 = getClass().getResourceAsStream("/org/o7planning/javafx/icon/male-16.png");
Image img1= new Image(is1);

radioButton.setGraphic(new ImageView(img1));

2. Exemple de RadioButton

RadioButtonDemo.java
package org.o7planning.javafx.radiobutton;

import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.control.RadioButton;
import javafx.scene.control.ToggleGroup;
import javafx.scene.layout.HBox;
import javafx.stage.Stage;

public class RadioButtonDemo extends Application {

    @Override
    public void start(Stage stage) {

        Label label = new Label("Your Gender: ");

        // Group
        ToggleGroup group = new ToggleGroup();

        // Radio 1: Male
        RadioButton button1 = new RadioButton("Male");
        button1.setToggleGroup(group);
        button1.setSelected(true);

        // Radio 3: Female.
        RadioButton button2 = new RadioButton("Female");
        button2.setToggleGroup(group);

        HBox root = new HBox();
        root.setPadding(new Insets(10));
        root.setSpacing(5);
        root.getChildren().addAll(label, button1, button2);

        Scene scene = new Scene(root, 400, 150);
        stage.setScene(scene);
        stage.setTitle("JavaFX RadioButton (o7planning.org)");
        scene.setRoot(root);
        stage.show();
    }

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

}

3. Traitement des événements pour RadioButton

Normalement, l'application effectue une action lorsque l'un des radio button est sélectionné dans le groupe.
RadioButtonEventDemo.java
package org.o7planning.javafx.radiobutton;

import javafx.application.Application;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.control.RadioButton;
import javafx.scene.control.Toggle;
import javafx.scene.control.ToggleGroup;
import javafx.scene.image.Image;
import javafx.scene.layout.HBox;
import javafx.scene.paint.Color;
import javafx.stage.Stage;

@SuppressWarnings("unused")
public class RadioButtonEventDemo extends Application {

   @Override
   public void start(Stage stage) {

       Label label = new Label("Your Gender: ");
       Label labelInfo = new Label();
       labelInfo.setTextFill(Color.BLUE);

       // Group
       ToggleGroup group = new ToggleGroup();

       group.selectedToggleProperty().addListener(new ChangeListener<Toggle>() {
           @Override
           public void changed(ObservableValue<? extends Toggle> ov, Toggle old_toggle, Toggle new_toggle) {
               // Has selection.
               if (group.getSelectedToggle() != null) {
                   RadioButton button = (RadioButton) group.getSelectedToggle();
                   System.out.println("Button: " + button.getText());
                   labelInfo.setText("You are " + button.getText());
               }
           }
       });

       // Radio 1: Male
       RadioButton button1 = new RadioButton("Male");
       button1.setToggleGroup(group);
       button1.setSelected(true);

       // Radio 2: Female.
       RadioButton button2 = new RadioButton("Female");
       button2.setToggleGroup(group);

       HBox root = new HBox();
       root.setPadding(new Insets(10));
       root.setSpacing(5);
       root.getChildren().addAll(label, button1, button2, labelInfo);

       Scene scene = new Scene(root, 400, 150);
       stage.setScene(scene);
       stage.setTitle("JavaFX RadioButton (o7planning.org)");
       scene.setRoot(root);
       stage.show();
   }

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

}

Tutoriels de JavaFX

Show More