【笔记】javafx_RadioButton和CheckBox
发布日期: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(); }}

在这里插入图片描述

在这里插入图片描述
https://www.bilibili.com/video/BV1ut411f7pg

上一篇:【ybt高效进阶2-2-4】【luogu P1381】单词背诵
下一篇:【笔记】javafx_TabPane和Tab切换面板组件

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2025年04月16日 02时46分53秒