當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


JavaFX 類 RadioButton用法及代碼示例


RadioButtons是JavaFx程序包的一部分。 RadioButtons主要用於創建隻能選擇一個項目的一係列項目。當按下並釋放單選按鈕時,將發送一個動作事件,可以使用事件處理程序來處理此動作事件。
可以將RadioButton添加到切換組,以便用戶不能選擇多個項目。默認情況下,單選按鈕不屬於任何切換組。可以使用getSelectedToggle()函數找到切換組的選定項目。

RadioButton類的構造方法

  1. RadioButton():創建一個帶有空字符串標簽的單選按鈕。
  2. 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



相關用法


注:本文由純淨天空篩選整理自andrew1234大神的英文原創作品 JavaFX | RadioButton with examples。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。