JavaFX使用RadioButton、CheckBox实现单选按钮、多选框

16 篇文章 0 订阅
13 篇文章 1 订阅

目录

 

一、环境

二、模拟

三、代码


一、环境

jdk8

二、模拟

三、代码

package xyz.hashdog.class31;

import javafx.application.Application;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
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.layout.AnchorPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

import java.util.List;


/**
 * @author th
 * @description: TODO
 * @projectName hashdog
 * @date 2020/2/1620:48
 */
public class Launch extends Application {

    public static void main(String[] args) {
        Application.launch(Launch.class, args);
    }

    @Override
    public void start(Stage primaryStage) throws Exception {


        AnchorPane an = new AnchorPane();

        //指定间距10
        HBox box = new HBox(10);

        //单选按钮组
        ToggleGroup tg = new ToggleGroup();
        //单选按钮
        RadioButton r1 = new RadioButton("r1");
        r1.setToggleGroup(tg);
        RadioButton r2 = new RadioButton("r2");
        r2.setToggleGroup(tg);
        RadioButton r3 = new RadioButton("r3");
        r3.setToggleGroup(tg);
        RadioButton r4 = new RadioButton("r4");
        r4.setToggleGroup(tg);
        box.getChildren().addAll(r1, r2, r3, r4);


        VBox vbox = new VBox(10);
        //多选按钮
        CheckBox c1 = new CheckBox("c1");
        CheckBox c2 = new CheckBox("c2");
        CheckBox c3 = new CheckBox("c3");
        CheckBox c4 = new CheckBox("c4");
        vbox.getChildren().addAll(c1, c2, c3, c4);
        AnchorPane.setTopAnchor(vbox, 20.0);


        an.getChildren().addAll(box, vbox);
        an.setStyle("-fx-background-color: deepskyblue");
        Scene s = new Scene(an);
        primaryStage.setScene(s);
        primaryStage.setTitle("hashdog");
        primaryStage.setWidth(500);
        primaryStage.setHeight(300);
        //设置窗口不可拉伸
        primaryStage.setResizable(false);
        primaryStage.show();


        //单选组添加选择事件
        tg.selectedToggleProperty().addListener(new ChangeListener<Toggle>() {
            @Override
            public void changed(ObservableValue<? extends Toggle> observable, Toggle oldValue, Toggle newValue) {
                RadioButton r = (RadioButton) newValue;
                System.out.println("已选择:" + r.getText());
            }
        });

        c1.selectedProperty().addListener(new ChangeListener<Boolean>() {
            @Override
            public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) {
                System.out.println("已经选择:" + newValue);
            }
        });
        //当点击面板的时候,打印已选择的多选按钮
        an.setOnMouseClicked(e -> {
            List<CheckBox> list = (List<CheckBox>) (Object) vbox.getChildren();
            final StringBuilder str = new StringBuilder("已选择:");
            list.forEach(item -> {
                if (item.isSelected()) {
                    str.append(item.getText() + ",");
                }
            });
            System.out.println(str);
        });


    }

}

 

  • 9
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用JavaFX中的CSS可以轻松地设置单选按钮的字体颜色,以下是一个示例代码: ```java import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.RadioButton; import javafx.scene.control.ToggleGroup; import javafx.scene.layout.VBox; import javafx.stage.Stage; public class RadioButtonTextColorExample extends Application { @Override public void start(Stage primaryStage) throws Exception { RadioButton radioButton1 = new RadioButton("Option 1"); RadioButton radioButton2 = new RadioButton("Option 2"); RadioButton radioButton3 = new RadioButton("Option 3"); ToggleGroup toggleGroup = new ToggleGroup(); radioButton1.setToggleGroup(toggleGroup); radioButton2.setToggleGroup(toggleGroup); radioButton3.setToggleGroup(toggleGroup); VBox root = new VBox(radioButton1, radioButton2, radioButton3); Scene scene = new Scene(root, 300, 200); scene.getStylesheets().add("style.css"); // 载CSS文件 primaryStage.setScene(scene); primaryStage.show(); } public static void main(String[] args) { launch(args); } } ``` 在上面的代码中,我们创建了三个单选按钮,并将它们添到一个垂直布局中。然后,我们创建了一个场景,并将垂直布局设置为场景的根节点。最后,我们载了一个名为`style.css`的CSS文件,并将它应用到场景中。 接下来,我们需要在CSS文件中设置单选按钮的字体颜色。在`style.css`文件中添以下代码: ```css .radio-button { -fx-text-fill: red; } ``` 这将设置单选按钮的字体颜色为红色。您可以更改颜色值为任何您喜欢的颜色。运行应用程序后,您应该可以看到单选按钮的字体颜色已经被更改为您在CSS文件中定义的颜色。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值