首页 > 其他分享 >如何使用CheckBox以获取用户的选择

如何使用CheckBox以获取用户的选择

时间:2023-05-27 15:33:26浏览次数:35  
标签:CheckBox javafx 用户 scene 获取 orderMap new import

如何使用CheckBox以获取用户的选择

CheckBox 是一个复选框,它有两种状态:选中和非选中。

CheckBox 可以比较直观的表现用户的选择情况。

效果展示

image

示例代码

import java.util.Map;
import java.util.TreeMap;

import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.CheckBox;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class CheckBoxExample extends Application
{
    private Map<Integer, CheckBox> orderMap; // id -> CheckBox

    private void getOrder()
    {
        Map<Integer, String> orderedFruits = new TreeMap<>();
        for (Map.Entry<Integer, CheckBox> entry : orderMap.entrySet())
        {
            CheckBox checkBox = entry.getValue();
            int id = entry.getKey();
            if (checkBox.isSelected())
            {
                orderedFruits.put(id, checkBox.getText());
            }
        }

        if (orderedFruits.isEmpty())
        {
            System.out.println("You have no order");
        }
        else
        {
            System.out.println("Your order is: " + orderedFruits);
        }
    }

    @Override
    public void start(Stage window) throws Exception
    {
        VBox vBox = new VBox();
        vBox.setPadding(new Insets(10));
        vBox.setSpacing(10);

        CheckBox appleCheckBox = new CheckBox("Apple");
        CheckBox orangeCheckBox = new CheckBox("Orange");
        CheckBox bananaCheckBox = new CheckBox("Banana");
        
        orderMap = new TreeMap<>();
        orderMap.put(1, appleCheckBox);
        orderMap.put(2, orangeCheckBox);
        orderMap.put(3, bananaCheckBox);

        Button orderButton = new Button("Make Order");
        orderButton.setOnAction(e -> getOrder() );

        vBox.getChildren().addAll(
            appleCheckBox,
            orangeCheckBox,
            bananaCheckBox,
            orderButton);

        Scene scene = new Scene(vBox, 400, 300);

        window.setScene(scene);
        window.setTitle(this.getClass().getSimpleName());
        window.show();
    }

    public static void main(String[] args)
    {
        launch(args);
    }
}

代码说明

这段代码创建了三个 CheckBox 代表三种可选水果,并将其放到一个 Map 中,这样做的目的是可以为每一个可选水果进行编号。

当点击按钮后,通过 checkBox.isSelected() 判断 CheckBox 的选中状态,从而收集当前选择的水果。

总结

  • 使用 CheckBox 可以轻松获取用户的选择
  • 通过将 CheckBox 放入 Map 中,我们可以对 CheckBox 进行编号

标签:CheckBox,javafx,用户,scene,获取,orderMap,new,import
From: https://www.cnblogs.com/javafx-howto/p/17436818.html

相关文章

  • amzon s3/minio获取预签名上传url,及js使用预签名url上传文件
      $("#btnSubmit").click(function(event){varfile=$("#ipfile")[0].files[0];varcontentType=!!file.type?file.type:"video/x-flv";//请求api接口:调用amzons3/minio的sdk获取临时上传......
  • C#HTTP.POST获取数据
    C#HTTP获取数据主要有两种方式,这里主要记录Post方式1.Post获取usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Net.Http;usingNewtonsoft;usingNewtonsoft.Json.Linq;usingNewto......
  • golang中切片越界获取到零值的坑
    B站视频演示golang中切片越界获取到零值的坑代码截图~~~......
  • ubuntu 20.4 安装msyql+创建mysql用户
    sudoapt-getupdatesudoapt-getupgratesudoaptinstallmysql-server设置运行远程访问修改:sudovim/etc/mysql/mysql.conf.d/mysqld.cnf用#注释掉bind-address=127.0.0.1进入mysql创建用户mysql-uroot-pCREATEUSER'test'@'%'IDENTIFIEDBY'12345......
  • Centos7配置普通用户不加sudo直接运行docker命令
    平时普通用户执行docker命令都要在docker命令前加上sudo就挺麻烦的,咱们把普通用户执行docker要加的sudo去掉.设置用户组sudogroupadddocker如果出现groupadd:cannotopen/etc/group,则使用以下两行命令解锁,如果没有则不需要运行,直接跳过即可sudochattr-i/etc/shad......
  • 获取门禁记录方式-实时获取
    实时获取开启门禁布防,每次门禁有记录产生都会主动发送信息,其中布防的方式有两种,一种是布防后只能开启一个监听,该监听海康的4200软件也在使用,因此建议在使用期间不要开启4200;另一种监听能开启多个,不过感觉这个不靠谱,建议用第一个,毕竟4200都在用。注意:使用实时获取时,人员编号不要......
  • SpringMVC —— 关于获取请求参数的注解
    1、@RequestParam的3个作用?①起别名②设置默认值③给list集合赋值2、@RequestParam、@RequestBody、@PathVariable分别用于获取什么样格式的请求数据??号传值的参数json对象格式参数路径传值参数......
  • 获取门禁记录方式-主动获取
    主动获取类似于获取门禁记录,通过代入的查询条件获取范围内的记录信息,使用该方式时需要注意时间范围不要重复或者获取数据后有查重操作,否则会出现重复的情况。流程中的1,2,6,7的代码请参见《获取门禁记录方式-公用方法》流程NET_DVR_Init(初始化)NET_DVR_Login_V40(登录获得Us......
  • 门禁获取门禁记录-公用部分说明
    公用部分NET_DVR_Init(初始化)boolCHCNetSDK.NET_DVR_Init()初始化海康组件返回值:true:初始化成功false:失败,失败原因:海康SDK分32位和64位,项目中目标平台一定要与SDK一致(项目右键->属性->生成->目标平台)DllImport的HCNetSDK.dll路径不对,如果使用绝对路径也不对时,路径不要......
  • EasyDSS如何调用接口获取录像MP4文件合成状态?
    EasyDSS互联网视频云服务的视频直播/点播功能支持视频采集、编辑、上传、媒体资源管理、自动化转码处理、分发服务等,帮助用户快速搭建拥有极致观看体验、安全可靠的视频直播点播应用。有用户反馈在调用接口时,会出现合成中的字样,并不知道合成的录像MP4文件是否已经合成完毕。今天我......