JavaFX之RadioButton (3)

来源:互联网 发布:怎么把淘宝小号养到2心 编辑:程序博客网 时间:2024/05/23 19:14

参考资料:《Java8编程参考官方教程》(第9版)

之前介绍的都是选中单选按钮后立即触发相应的事件,下面要介绍的是一种不立即执行选中单选按钮事件的操作。


在界面上设置一Button,只有选中单选按钮并单击Button后事件才会被触发。

代码如下:

package review;import javafx.application.*;import javafx.geometry.Pos;import javafx.stage.*;import javafx.scene.*;import javafx.scene.control.*;import javafx.scene.layout.*;public class RadioButtonDemo3 extends Application{RadioButton rb1,rb2,rb3;ToggleGroup tg;Label label;Button button;public static void main(String[] args){launch(args);}@Overridepublic void start(Stage stage) throws Exception{GridPane pane=new GridPane();pane.setHgap(50);pane.setVgap(30);pane.setAlignment(Pos.CENTER);rb1=new RadioButton("C++");rb2=new RadioButton("Java");rb3=new RadioButton("Paython");tg=new ToggleGroup();rb1.setToggleGroup(tg);rb2.setToggleGroup(tg);rb3.setToggleGroup(tg);label=new Label("Please Select !");button=new Button("Confirm");button.setOnAction(e->{RadioButton temp_rb=(RadioButton)tg.getSelectedToggle();label.setText("Select "+temp_rb.getText());});pane.add(rb1, 0, 0);pane.add(rb2, 1, 0);pane.add(rb3, 2, 0);pane.add(label, 1, 1);pane.add(button, 1, 2);Scene scene=new Scene(pane,500,200);stage.setScene(scene);stage.setTitle("RadioButtonDemo 3");stage.show();}}

关键的代码就是:

button.setOnAction(e->{RadioButton temp_rb=(RadioButton)tg.getSelectedToggle();label.setText("Select "+temp_rb.getText());});

使用getSelectedToggle()方法获取被选中单选按钮的引用,来达到在其他控件事件响应中来实现对单选按钮的响应。

感觉这实际上也是对开关组(ToggleGroup)的一种处理。

原创粉丝点击