
【笔记】javafx_RadioButton和CheckBox
https://www.bilibili.com/video/BV1ut411f7pg
发布日期:2021-05-07 06:59:30
浏览次数:21
分类:技术文章
本文共 5193 字,大约阅读时间需要 17 分钟。
import javafx.application.Application;import javafx.beans.value.ChangeListener;import javafx.beans.value.ObservableValue;import javafx.event.EventHandler;import javafx.scene.Node;import javafx.scene.Scene;import javafx.scene.control.CheckBox;import javafx.scene.control.RadioButton;import javafx.scene.control.Toggle;import javafx.scene.control.ToggleGroup;import javafx.scene.input.MouseEvent;import javafx.scene.layout.AnchorPane;import javafx.scene.layout.HBox;import javafx.stage.Stage;import java.awt.*;import java.util.Iterator;import java.util.function.Consumer;public class Main extends Application { public static void main(String[] args) { launch(args); } @Override public void start(Stage primaryStage) throws Exception { AnchorPane an = new AnchorPane(); an.setStyle("-fx-background-color:#fffff0"); //单选按钮 RadioButton r1 = new RadioButton("选项1"); RadioButton r2 = new RadioButton("选项2"); RadioButton r3 = new RadioButton("选项3"); RadioButton r4 = new RadioButton("选项4"); //多选按钮 CheckBox c1 = new CheckBox("多选1"); CheckBox c2 = new CheckBox("多选2"); CheckBox c3 = new CheckBox("多选3"); CheckBox c4 = new CheckBox("多选4"); c2.setIndeterminate(true);//不确定状态 c3.setAllowIndeterminate(true);//允许不确定状态 //按钮组 ToggleGroup tg = new ToggleGroup(); tg.getToggles().addAll(r1,r2,r3,r4); //默认选中// r2.setSelected(true);// tg.selectToggle(r3); HBox hBox = new HBox(10); hBox.getChildren().addAll(r1,r2,r3,r4); hBox.setStyle("-fx-background-color:#63B8FF"); HBox hBox2 = new HBox(10); hBox2.getChildren().addAll(c1,c2,c3,c4); hBox2.setStyle("-fx-background-color:#63B8FF"); //单选监听 r1.selectedProperty().addListener(new ChangeListener() { @Override public void changed(ObservableValue observable, Boolean oldValue, Boolean newValue) { System.out.println("r1被选择 = " + r1.isSelected()); } }); tg.selectedToggleProperty().addListener(new ChangeListener () { @Override public void changed(ObservableValue observable, Toggle oldValue, Toggle newValue) { RadioButton r = (RadioButton)newValue; System.out.println("tg.selectedToggleProperty = " + r.getText()); } }); //多选监听 c1.selectedProperty().addListener(new ChangeListener () { @Override public void changed(ObservableValue observable, Boolean oldValue, Boolean newValue) { System.out.println("c1状态 = " + newValue); } }); //监听所有多选选项状态 an.setOnMouseClicked(new EventHandler () { @Override public void handle(MouseEvent event) { //输出c1,c2,c3,c4状态 //循环// Object[] obj = hBox2.getChildren().toArray();// for(Object o : obj){ // CheckBox c = (CheckBox)o;// System.out.println(c.getText() + "的状态 = " + c.isSelected() +// " 不确定状态是 = " + c.isIndeterminate());// }// System.out.println(); //循环// for (Node node : hBox2.getChildren()) { // CheckBox c = (CheckBox) node;// System.out.println(c.getText() + "的状态 = " + c.isSelected() +// " 不确定状态是 = " + c.isIndeterminate());// }// System.out.println(); //迭代器// Iterator it = hBox2.getChildren().iterator();// while(it.hasNext()){ // CheckBox c = (CheckBox) it.next();// System.out.println(c.getText() + "的状态 = " + c.isSelected() +// " 不确定状态是 = " + c.isIndeterminate());// }// System.out.println(); //foreach// hBox2.getChildren().forEach(new Consumer () { // @Override// public void accept(Node t) { // CheckBox c = (CheckBox) t;// System.out.println(c.getText() + "的状态 = " + c.isSelected() +// " 不确定状态是 = " + c.isIndeterminate());// }// });// System.out.println();// hBox2.getChildren().stream().sorted() //lambda表达式// hBox2.getChildren().forEach(item ->{ // CheckBox c = (CheckBox) item;// System.out.println(c.getText() + "的状态 = " + c.isSelected() +// " 不确定状态是 = " + c.isIndeterminate());// }); //lambda表达式 hBox2.getChildren().forEach(item -> System.out.println( ((CheckBox) item).getText() + "的状态 = " + ((CheckBox) item).isSelected() + " 不确定状态是 = " + ((CheckBox) item).isIndeterminate()) ); } }); an.getChildren().addAll(hBox,hBox2); AnchorPane.setTopAnchor(hBox,100.0); AnchorPane.setLeftAnchor(hBox,100.0); AnchorPane.setTopAnchor(hBox2,130.0); AnchorPane.setLeftAnchor(hBox2,100.0); Scene scene = new Scene(an); primaryStage.setScene(scene); primaryStage.setWidth(700); primaryStage.setHeight(700); primaryStage.show(); }}

发表评论
最新留言
留言是一种美德,欢迎回访!
[***.207.175.100]2025年04月16日 02时46分53秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
(20200328已解决)从docker容器内复制文件到宿主机
2021-05-07
理解Docker ulimit参数
2021-05-07
OpenAI Gym简介及初级实例
2021-05-07
int 转 CString
2021-05-07
Edit编辑框自动换行与长度
2021-05-07
低通滤波器的设计
2021-05-07
窄带随机过程的产生
2021-05-07
Java面向对象
2021-05-07
JAVA带标签的break和continue
2021-05-07
Java获取线程基本信息的方法
2021-05-07
医疗管理系统-手机快速登录和SpringSecurity权限控制
2021-05-07
vue源码分析(MVVM篇)
2021-05-07
设计模式之组合模式
2021-05-07
(Python学习笔记):字典
2021-05-07
(C++11/14/17学习笔记):线程启动、结束,创建线程多法、join,detach
2021-05-07
leetcode 14 最长公共前缀
2021-05-07
做做Java
2021-05-07
C++并发与多线程(一)
2021-05-07
计算机网络子网划分错题集
2021-05-07
java一些基本程序
2021-05-07