codestory

Die Anleitung zu JavaFX RadioButton

  1. JavaFX RadioButton
  2. Das Beispiel über RadioButton
  3. Das Event für RadioButton behandeln

1. JavaFX RadioButton

RadioButton ist eine aus ToggleButton ausgeweitertern class. Wie ToggleButton hat Radio Button 2 Status : gewählt und nichtgewählt. Wenn die RadioButton in einer Gruppe kombiniert werden, wird nur ein Radio Button maximal in einer Zeitpunkt gewählt. Aber es gibt ein Unterschied mit ToggleButton. Das sind : Der Benutzer kann nur ein RadioButton nicht gewählt, indem er ein anderes RadioButton in der gleichen Gruppe wählt.
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);
Sie können die Icons für RadioButton mittels der Methode setGraphic. setzen
InputStream is1 = getClass().getResourceAsStream("/org/o7planning/javafx/icon/male-16.png");
Image img1= new Image(is1);

radioButton.setGraphic(new ImageView(img1));

2. Das Beispiel über 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. Das Event für RadioButton behandeln

In einzelnen wird die Applikation ein Task wenn einer der RadioButton in der Gruppe gewählt wird
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);
   }

}

Die Anleitungen JavaFX

Show More