Lecture Videos
  1  import javafx.geometry.Insets;
  2  import javafx.scene.control.RadioButton;
  3  import javafx.scene.control.ToggleGroup;
  4  import javafx.scene.layout.BorderPane;
  5  import javafx.scene.layout.VBox;
  6  import javafx.scene.paint.Color;
  7  
  8  public class RadioButtonDemo extends CheckBoxDemo {
  9    @Override // Override the getPane() method in the super class
 10    protected BorderPane getPane() {
 11      BorderPane pane = super.getPane();
 12      
 13      VBox paneForRadioButtons = new VBox(20);
 14      paneForRadioButtons.setPadding(new Insets(5, 5, 5, 5)); 
 15      paneForRadioButtons.setStyle
 16        ("-fx-border-width: 2px; -fx-border-color: green");
 17      
 18      RadioButton rbRed = new RadioButton("Red");
 19      RadioButton rbGreen = new RadioButton("Green");
 20      RadioButton rbBlue = new RadioButton("Blue");
 21      paneForRadioButtons.getChildren().addAll(rbRed, rbGreen, rbBlue);
 22      pane.setLeft(paneForRadioButtons);
 23  
 24      ToggleGroup group = new ToggleGroup();
 25      rbRed.setToggleGroup(group);
 26      rbGreen.setToggleGroup(group);
 27      rbBlue.setToggleGroup(group);
 28      
 29      rbRed.setOnAction(e -> {
 30        if (rbRed.isSelected()) {
 31          text.setFill(Color.RED);
 32        }
 33      });
 34      
 35      rbGreen.setOnAction(e -> {
 36        if (rbGreen.isSelected()) {
 37          text.setFill(Color.GREEN);
 38        }
 39      });
 40  
 41      rbBlue.setOnAction(e -> {
 42        if (rbBlue.isSelected()) {
 43          text.setFill(Color.BLUE);
 44        }
 45      });
 46      
 47      return pane;
 48    }
 49  
 50    /**
 51     * The main method is only needed for the IDE with limited
 52     * JavaFX support. Not needed for running from the command line.
 53     */
 54    public static void main(String[] args) {
 55      launch(args);
 56    }
 57  }