当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。