RadioButtons是JavaFx程序包的一部分。 RadioButtons主要用於創建隻能選擇一個項目的一係列項目。當按下並釋放單選按鈕時,將發送一個動作事件,可以使用事件處理程序來處理此動作事件。
可以將RadioButton添加到切換組,以便用戶不能選擇多個項目。默認情況下,單選按鈕不屬於任何切換組。可以使用getSelectedToggle()函數找到切換組的選定項目。
RadioButton類的構造方法:
- RadioButton():創建一個帶有空字符串標簽的單選按鈕。
- RadioButton(String t):創建一個帶有指定文本作為標簽的單選按鈕
常用方法:
方法 | 說明 |
---|---|
getText() | 返回textLabel for單選按鈕 |
isSelected() | 返回是否選擇單選按鈕 |
setSelected(boolean b) | 設置是否選擇單選按鈕 |
setToggleGroup(ToggleGroup tg) | 設置單選按鈕的切換組 |
fire() | 當且僅當RadioButton尚未選擇或不是ToggleGroup的一部分時,才切換單選按鈕的狀態。 |
以下示例程序旨在說明RadioButton類:
- 程序創建RadioButton並將其添加到舞台:此程序創建一個名為r1,r2,r3的RadioButton。單選按鈕將在場景內創建,而場景又將托管在舞台(頂級JavaFX容器)內。函數setTitle()用於為舞台提供標題。然後,創建一個tile-pane,在其上調用addChildren()方法將單選按鈕與場景中的單選按鈕以及代碼中的(200,200)指定的分辨率一起附加。最後,調用show()方法以顯示最終結果。
// Java program to create RadioButton and add it to the stage import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.*; import javafx.scene.layout.*; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.collections.*; import javafx.stage.Stage; import javafx.scene.text.Text.*; import javafx.scene.text.*; public class radiobutton extends Application { // launch the application public void start(Stage s) { // set title for the stage s.setTitle("creating RadioButton"); // create a tile pane TilePane r = new TilePane(); // create a label Label l = new Label("This is a Radiobutton example "); // create radiobuttons RadioButton r1 = new RadioButton("male"); RadioButton r2 = new RadioButton("female"); RadioButton r3 = new RadioButton("others"); // add label r.getChildren().add(l); r.getChildren().add(r1); r.getChildren().add(r2); r.getChildren().add(r3); // create a scene Scene sc = new Scene(r, 200, 200); // set the scene s.setScene(sc); s.show(); } public static void main(String args[]) { // launch the application launch(args); } }
輸出:
- 程序以創建RadioButton並將其添加到ToggleGroup:此程序創建一個名為r1,r2,r3的RadioButton。單選按鈕將在場景內創建,而場景又將托管在舞台(頂級JavaFX容器)內。函數setTitle()用於為舞台提供標題。使用setToggleGroup()函數,將創建一個切換組並將單選按鈕添加到該切換組。然後,創建一個tile-pane,在其上調用addChildren()方法將單選按鈕附加到場景內,並使用代碼中的(200,200)指定的分辨率。最後,調用show()方法以顯示最終結果。
// Java Program to create RadioButton and add it to a ToggleGroup import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.*; import javafx.scene.layout.*; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.collections.*; import javafx.stage.Stage; import javafx.scene.text.Text.*; import javafx.scene.text.*; public class radiobutton_1 extends Application { // labels Label l; // launch the application public void start(Stage s) { // set title for the stage s.setTitle("creating RadioButton"); // create a tile pane TilePane r = new TilePane(); // create a label l = new Label("This is a Radiobutton example "); // create a toggle group ToggleGroup tg = new ToggleGroup(); // create radiobuttons RadioButton r1 = new RadioButton("male"); RadioButton r2 = new RadioButton("female"); RadioButton r3 = new RadioButton("others"); // add radiobuttons to toggle group r1.setToggleGroup(tg); r2.setToggleGroup(tg); r3.setToggleGroup(tg); // add label r.getChildren().add(l); r.getChildren().add(r1); r.getChildren().add(r2); r.getChildren().add(r3); // create a scene Scene sc = new Scene(r, 200, 200); // set the scene s.setScene(sc); s.show(); } public static void main(String args[]) { // launch the application launch(args); } }
輸出:
- 程序創建RadioButton,將其添加到ToggleGroup並向其添加偵聽器:此程序創建一個名為r1,r2,r3的RadioButton。單選按鈕將在場景內創建,而場景又將托管在舞台(頂級JavaFX容器)內。函數setTitle()用於為舞台提供標題。使用setToggleGroup()函數,將創建一個切換組並將單選按鈕添加到該切換組。創建標簽12以顯示選擇了哪個單選按鈕。添加了一個更改偵聽器,以處理單選按鈕選擇中的任何更改(使用addListener()函數)。通過更改標簽l2的文本來描述選擇的更改。然後,創建一個tile-pane,在其上調用addChildren()方法將單選按鈕與場景中的單選按鈕以及代碼中的(200,200)指定的分辨率一起附加。最後,調用show()方法以顯示最終結果。
// Java Program to create RadioButton, add it to a ToggleGroup and add a listener to it import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.*; import javafx.scene.layout.*; import javafx.event.ActionEvent; import javafx.event.*; import javafx.collections.*; import javafx.stage.Stage; import javafx.scene.text.Text.*; import javafx.scene.text.*; import javafx.beans.value.*; public class radiobutton_2 extends Application { // launch the application public void start(Stage s) { // set title for the stage s.setTitle("creating RadioButton"); // create a tile pane TilePane r = new TilePane(); // create a label Label l = new Label("This is a Radiobutton example "); Label l2 = new Label("nothing selected"); // create a toggle group ToggleGroup tg = new ToggleGroup(); // create radiobuttons RadioButton r1 = new RadioButton("male"); RadioButton r2 = new RadioButton("female"); RadioButton r3 = new RadioButton("others"); // add radiobuttons to toggle group r1.setToggleGroup(tg); r2.setToggleGroup(tg); r3.setToggleGroup(tg); // add label r.getChildren().add(l); r.getChildren().add(r1); r.getChildren().add(r2); r.getChildren().add(r3); r.getChildren().add(l2); // create a scene Scene sc = new Scene(r, 200, 200); // add a change listener tg.selectedToggleProperty().addListener(new ChangeListener<Toggle>() { public void changed(ObservableValue<? extends Toggle> ob, Toggle o, Toggle n) { RadioButton rb = (RadioButton)tg.getSelectedToggle(); if (rb != null) { String s = rb.getText(); // change the label l2.setText(s + " selected"); } } }); // set the scene s.setScene(sc); s.show(); } public static void main(String args[]) { // launch the application launch(args); } }
輸出:
注意:以上程序無法在在線IDE中運行,請使用離線編譯器
參考: https://docs.oracle.com/javase/8/javafx/api/javafx/scene/control/RadioButton.html
相關用法
- JavaFX 類 Arc用法及代碼示例
- JavaFX 類 Box用法及代碼示例
- JavaFX 類 Line用法及代碼示例
- JavaFX 類 Cylinder用法及代碼示例
- JavaFX 類 ContextMenu用法及代碼示例
- JavaFX 類 Polygon用法及代碼示例
- JavaFX 類 Sphere用法及代碼示例
- JavaFX 類 Polyline用法及代碼示例
- JavaFX 類 Ellipse用法及代碼示例
- JavaFX 類 ColorPicker用法及代碼示例
- JavaFX 類 Alert用法及代碼示例
- JavaFX 類 ComboBox用法及代碼示例
- JavaFX 類 DatePicker用法及代碼示例
- JavaFX 類 Circle用法及代碼示例
- JavaFX 類 QuadCurve用法及代碼示例
注:本文由純淨天空篩選整理自andrew1234大神的英文原創作品 JavaFX | RadioButton with examples。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。