如何在 JavaFX 中为 RadioButton 设置操作?


单选按钮是一种呈圆形的按钮。它有两种状态:选中和未选中。通常,单选按钮使用切换组进行分组,你只能选择其中一个。

你可以通过实例化**javafx.scene.control.RadioButton** 类来创建 JavaFX 中的单选按钮,该类是 ToggleButton 类的子类。每当按下或释放单选按钮时,就会生成操作。你可以使用 **setToggleGroup()** 方法将单选按钮设置到一个组中。

给 RadioButton 设置操作 −

RadioButton 类**selected** 的属性指定了当前的复选框是否被选中。如果选中,它的值将为真,如果未选中,它的值将为假。

**selectedProperty()** 方法返回一个布尔属性,指示当前的复选框是否被选中。如果你想在复选框被选中时执行某些操作,你可以像下面这样为这个属性添加一个监听器 −

checkBox2.selectedProperty().addListener(
   //. . . . .
);

示例

import javafx.application.Application;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.geometry.Insets;
import javafx.geometry.Orientation;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.RadioButton;
import javafx.scene.control.Slider;
import javafx.scene.control.ToggleGroup;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class RadioButton_Action extends Application {
   public void start(Stage stage) {
      //Creating a button
      Button button = new Button("Hi");
      button.setPrefSize(40, 40);
      //Creating a slider to resize the button
      Slider slider = new Slider(40, 200, 40);
      //Setting its orientation to Horizontal
      slider.setPrefHeight(180);
      slider.setOrientation(Orientation.VERTICAL);
      slider.setShowTickLabels(true);
      slider.setShowTickMarks(true);
      slider.setMajorTickUnit(40);
      slider.setBlockIncrement(20);
      slider.valueProperty().addListener(new ChangeListener<Number>() {
         public void changed(ObservableValue <?extends Number>observable, Number
         oldValue, Number newValue){
            button.setPrefSize((double)newValue, (double)newValue);
         }
      });
      RadioButton prevent = new RadioButton();
      RadioButton reset = new RadioButton();
      ToggleGroup group = new ToggleGroup();
      prevent.setToggleGroup(group);
      reset.setToggleGroup(group);
      prevent.selectedProperty().addListener(
      (ObservableValue<? extends Boolean> ov, Boolean old_val, Boolean new_val) ->{
         button.setMinWidth(40);
         button.setPrefWidth(40);
         button.setMaxWidth(40);
         button.setMinHeight(40);
         button.setMaxHeight(40);
         button.setPrefHeight(40);
      });
      reset.selectedProperty().addListener(
      ObservableValue<? extends Boolean> ov, Boolean old_val, Boolean new_val) -> {
         button.setPrefHeight(40);
         button.setPrefWidth(40);
         button.setMinWidth(Button.USE_PREF_SIZE);
         button.setMaxWidth(Button.USE_PREF_SIZE);
         button.setMinHeight(Button.USE_PREF_SIZE);
         button.setMaxHeight(Button.USE_PREF_SIZE);
      });
      //Creating the pane
      BorderPane pane = new BorderPane();
      pane.setCenter(button);
      pane.setRight(new HBox(new Label("Prevent Reize"), prevent, new Label("Allow Resize"), reset));
      pane.setLeft(new VBox(new Label("Button Reize"), slider));
      pane.setPadding(new Insets(10, 10, 10, 10));
      //Preparing the scene
      Scene scene = new Scene(pane, 595, 250);
      stage.setTitle("JavaFX Example");
      stage.setScene(scene);
      stage.show();
   }
   public static void main(String args[]){
      launch(args);
   }
}

输出

更新时间:16-May-2020

739 次浏览

开启您的 事业

完成课程获得认证

开始学习
广告
© . All rights reserved.