JavaFX选择框

JavaFX选择框允许用户在几个选项之间快速选择。

创建一个选择框

我们可以使用ChoiceBox中的构造函数来创建ChoiceBox对象。

以下代码显示了如何使用其构造函数创建和填充选择框。 列表项是从可观察的列表来创建的。

ChoiceBox cb =newChoiceBox(FXCollections.observableArrayList("A","B","C")); 

我们还可以使用一个空的选择框使用它的默认构造函数,并使用setItems方法设置列表项。

ChoiceBox cb = new ChoiceBox();
cb.setItems(FXCollections.observableArrayList("A", "B", new Separator(), "C", "D")
);

上面的代码还向选择框中添加了一个分隔符对象。分隔符分隔控件项目。

例子1

import javafx.application.Application;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.collections.FXCollections;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.ChoiceBox;
import javafx.scene.control.Label;
import javafx.scene.control.Tooltip;
import javafx.scene.layout.HBox;
import javafx.scene.paint.Color;
import javafx.scene.shape.Rectangle;
import javafx.stage.Stage;public class Main extends Application {public static void main(String[] args) {launch(args);}@Overridepublic void start(Stage stage) {Group root = new Group();ChoiceBox<String> cb = new ChoiceBox<String>(FXCollections.observableArrayList("a", "b", "c", "d", "e"));//默认值cb.setValue("a");root.getChildren().add(cb);Scene scene = new Scene(root,300,300);stage.setScene(scene);stage.show();}
}

例子2

import javafx.application.Application;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.collections.FXCollections;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.ChoiceBox;
import javafx.scene.control.Label;
import javafx.scene.control.Tooltip;
import javafx.scene.layout.HBox;
import javafx.scene.paint.Color;
import javafx.scene.shape.Rectangle;
import javafx.stage.Stage;public class Main extends Application {final Label label = new Label("Hello");public static void main(String[] args) {launch(args);}@Overridepublic void start(Stage stage) {Rectangle rect = new Rectangle(150, 30);Scene scene = new Scene(new Group());scene.setFill(Color.ALICEBLUE);stage.setScene(scene);stage.show();stage.setWidth(300);stage.setHeight(200);Label label = new Label("A");label.setStyle("-fx-font: 25 arial;");label.setLayoutX(40);rect.setStroke(Color.BLUE);rect.setStrokeWidth(3);rect.setFill(Color.WHITE);final String[] greetings = new String[] { "A", "B", "C", "D", "E" };final ChoiceBox<String> cb = new ChoiceBox<String>(FXCollections.observableArrayList("a", "b", "c", "d", "e"));cb.getSelectionModel().selectedIndexProperty().addListener(new ChangeListener<Number>() {public void changed(ObservableValue ov, Number value, Number new_value) {label.setText(greetings[new_value.intValue()]);}});cb.setTooltip(new Tooltip("Select the language"));cb.setValue("English");HBox hb = new HBox();hb.getChildren().addAll(cb, label);hb.setSpacing(30);hb.setAlignment(Pos.CENTER);hb.setPadding(new Insets(10, 0, 0, 10));((Group) scene.getRoot()).getChildren().add(hb);}
}

此处为语雀视频卡片,点击链接查看:Video_2022-04-28_161022.wmv

例子3

以下代码显示了如何在ChoiceBox中填充数据。


import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.Cursor;
import javafx.scene.Scene;
import javafx.scene.control.ChoiceBox;
import javafx.scene.layout.VBox;
import javafx.scene.text.Font;
import javafx.scene.text.Text;
import javafx.stage.Stage;
import javafx.stage.StageStyle;public class Main extends Application {ObservableList cursors = FXCollections.observableArrayList(Cursor.DEFAULT,Cursor.CROSSHAIR,Cursor.WAIT,Cursor.TEXT,Cursor.HAND,Cursor.MOVE,Cursor.N_RESIZE,Cursor.NE_RESIZE,Cursor.E_RESIZE,Cursor.SE_RESIZE,Cursor.S_RESIZE,Cursor.SW_RESIZE,Cursor.W_RESIZE,Cursor.NW_RESIZE,Cursor.NONE);@Overridepublic void start(Stage stage) {ChoiceBox choiceBoxRef = new ChoiceBox(cursors);VBox box = new VBox();box.getChildren().add(choiceBoxRef);final Scene scene = new Scene(box,300, 250);scene.setFill(null);stage.setScene(scene);stage.show();scene.cursorProperty().bind(choiceBoxRef.getSelectionModel().selectedItemProperty());}public static void main(String[] args) {launch(args);}
}

此处为语雀视频卡片,点击链接查看:Video_2022-04-28_161022.wmv

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/855138.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

音频处理2_进阶概念

本节主要对”音乐”和”人声“等概念初步整理&#xff0c;并过度到AI模型的讲解&#xff0c;本节后续会有补充或修改。 1. 名词概念 1.1 音频类 基频&#xff08;f0&#xff09; 复杂声音&#xff08;例如人声、乐器音&#xff09;通常由多个频率成分组成。基频是最低的频率成…

Unity基础(三)3D场景搭建

目录 简介: 一.下载新手资源 二.创建基本地形 三.添加场景细节 四,添加水 五,其他 六. 总结 简介: 在 Unity 中进行 3D 场景搭建是创建富有立体感和真实感的虚拟环境的关键步骤。 首先&#xff0c;需要导入各种 3D 模型资源&#xff0c;如建筑物、角色、道具等。这些模…

springboot与flowable(9):候选人组

act_id_xxx相关表存储了所有用户和组的数据。 一、维护用户信息 Autowiredprivate IdentityService identityService;/*** 维护用户*/Testvoid createUser() {User user identityService.newUser("zhangsan");user.setEmail("zhangsanqq.com");user.setF…

TOP150-LC45-跳跃问题II-java版

java解法-贪心 /*跳跃游戏II 给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说&#xff0c;如果你在 nums[i] 处&#xff0c;你可以跳转到任意 nums[i j] 处:0 < j < nums[i]i j < n 返…

一周刷爆leetcode!(b站视频)

文章目录 一、排序思想的题目二、使用步骤1. 一、排序思想的题目 跟着b站一周刷爆leetcode这个视频开始刷一下leetcode的题目 进行一下记录啥的 二、使用步骤 1. 315. 计算右侧小于当前元素的个数 代码如下&#xff1a; 写了一下暴力解法&#xff0c;没有通过 使用归并排序…

CHATGPT说这个运算放大器是比较器,我说这是运放典型的同相比例放大器,一个光控电路分析

纠正 图1 光控电路 该电路来自一个问题&#xff0c;链接见文末。 因GPT的分析有误&#xff0c;特此纠正。 引用图片和答案用于分析&#xff0c;如侵权请联系本人。 电路分析&#xff1a; 该电路为光控灯电路&#xff0c;灯光为LED发光二极管 D。 光敏电阻RG的阻值和光线强度关…

6.18作业

完善对话框&#xff0c;点击登录对话框&#xff0c;如果账号和密码匹配&#xff0c;则弹出信息对话框&#xff0c;给出提示”登录成功“&#xff0c;提供一个Ok按钮&#xff0c;用户点击Ok后&#xff0c;关闭登录界面&#xff0c;跳转到其他界面 如果账号和密码不匹配&#xf…

翻转数位00

题目链接 翻转数位 题目描述 注意点 可以将一个数位从0变为1找出能够获得的最长的一串1的长度&#xff08;必须是连续的&#xff09; 解答思路 参照题解使用动态规划解决本题&#xff0c;对于任意一个位置i&#xff0c;dp[i][0]表示到达且包含第i位不翻转0最长1的长度&…

使用 rosbag play 更改bag包发布的话题名称

在ROS开发中&#xff0c;有时我们需要回放已记录的ROS包文件&#xff08;.bag&#xff09;&#xff0c;并将其中某个话题的数据重新映射到一个新的话题。这在数据处理、调试和系统集成时非常有用。例如&#xff0c;我们可能有一个记录了点云数据的ROS包文件&#xff0c;其中点云…

Git 拉取指定分支 合并入主分支

前提条件 确保你已经安装了Git&#xff0c;并且已经克隆了自己的仓库到本地。 解决方法 添加远程仓库 假设你已经添加了远程仓库&#xff1a; git remote add upstream https://github.com/username/repo.git 获取远程仓库的分支 获取远程仓库的所有分支信息&#xff1a; g…

游戏心理学Day18

游戏玩家心理 在游戏世界中&#xff0c;设计师的工作总是围绕尽可能留住玩家要展开。在游戏创作时&#xff0c;设计师会假设目标诉讼的特点并激励迎合他们的需求&#xff0c;如果这种假设是经过实际调研之后做出的&#xff0c;那么就会比较接近实际情况而。如果这种假设是设计…

思科配置路由器,四台主机互相ping通

一、如图配置 PC4和PC5用来配置路由器&#xff0c;各ip、接口如图所示。 二、配置各主机ip、子网掩码SNM、默认网关DGW (一)、PC0 (二)、PC1 (三)、PC2 (四)、PC3 三、 配置路由器Router0 (期间报错是打错了字母) Router>en Router#configure terminal Enter configurat…

golang之Redis常用类型使用

代码仓库 Gitee&#xff1a;https://gitee.com/xiaoyinhui/go-study/tree/master/server/testsGithub&#xff1a;https://github.com/xiaoyin001/go-study/tree/master/server/tests 链接Redis func newRedis() *redis.Client {// 更多 Options 的参数解释可以参考 go Redis…

阶段性总结:如何快速上手一个新的平台或者技术

作为研发一枚&#xff0c;为了实现客户的各种需求&#xff0c;为了避免重复造轮子&#xff0c;通常需要快速调查到哪个轮子&#xff08;比如各种平台&#xff0c;或者开发包等&#xff09;好用&#xff0c;然后快速熟悉和上手。在接触到一个新的平台或者技术的时候&#xff0c;…

更新表的统计信息并清空缓存--DM8达梦数据库

更新表的统计信息并清空缓存--DM8达梦数据库 环境介绍1 收集 <表> 上所有对象信息&#xff0c;含索引2 清理缓存的执行计划3 达梦数据库学习使用列表 环境介绍 在某些环境刚完成数据迁移, 10万行以上大表数据量有修改1/3 ,查询条件已经创建索引,执行计划不好,或执行计划…

开发指南031-安装ssl证书

为增强安全性&#xff0c;平台可安装ssl证书。对于平台不同的组成部分需要采用不同的方式&#xff0c;使用不同的证书格式&#xff1a; 一、前端 前端采用nginx部署&#xff0c;安装证书步骤如下&#xff08;linux window版一样&#xff09;&#xff1a; 1、conf目录下增加cert…

软考阅卷将完成?!软考成绩有望六月底公布!

2024上半年软考考试已于5月25日-28日举行&#xff0c;考完试后大家最关心的事情莫过于查分了。 一、最新消息 1、不同地区在报名时对成绩公布的时间有所预示&#xff0c;但并没有一个统一的日期举个例子&#xff0c;江苏考区预计在6月下旬公布成绩&#xff0c;而黑龙江考区则预…

力扣2476.二叉搜索树最近节点查询

力扣2476.二叉搜索树最近节点查询 二叉搜索树 中序遍历 严格递增数组 在数组上做二分 找到第一个>q的元素的下标j若j < n 则a[j]为maxx若j-1>0 && a[j] ! p 则a[j-1]为minx class Solution {vector<int> a;void dfs(TreeNode* node){if(node null…

glm4、qwen、MiniCPM-Llama3-V代码层面差异性分析

让我们详细解读这个glm4下的 RotaryEmbedding 类&#xff0c;逐行解释代码的工作原理。 类的定义和初始化 class RotaryEmbedding(nn.Module):def __init__(self, dim, rope_ratio1, original_implFalse, deviceNone, dtypeNone):super().__init__()inv_freq 1.0 / (10000 *…

【Altium】Sheet Symbol器件页面符和对应原理图端口同步

【更多软件使用问题请点击亿道电子官方网站】 1、文档目标&#xff1a; 更给原理图端口后&#xff0c;如何同步到对应的sheet symbol 2、应用场景&#xff1a; 使用层次结构原理图设计的情况下&#xff0c;修改了某张原理图上的端口之后&#xff0c;其对应的sheet symbol上的…