如何在 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);
}
}輸出

廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP