- JavaFX 教程
- JavaFX - 首页
- JavaFX - 概述
- JavaFX 安装和架构
- JavaFX - 环境
- 使用 Netbeans 安装 JavaFX
- 使用 Eclipse 安装 JavaFX
- 使用 Visual Studio Code 安装 JavaFX
- JavaFX - 架构
- JavaFX - 应用
- JavaFX 2D 形状
- JavaFX - 2D 形状
- JavaFX - 绘制直线
- JavaFX - 绘制矩形
- JavaFX - 绘制圆角矩形
- JavaFX - 绘制圆形
- JavaFX - 绘制椭圆
- JavaFX - 绘制多边形
- JavaFX - 绘制折线
- JavaFX - 绘制三次贝塞尔曲线
- JavaFX - 绘制二次贝塞尔曲线
- JavaFX - 绘制弧形
- JavaFX - 绘制 SVG 路径
- JavaFX 2D 对象的属性
- JavaFX - 描边类型属性
- JavaFX - 描边宽度属性
- JavaFX - 描边填充属性
- JavaFX - 描边属性
- JavaFX - 描边线连接属性
- JavaFX - 描边斜接限制属性
- JavaFX - 描边线端点属性
- JavaFX - 平滑属性
- JavaFX 路径对象
- JavaFX - 路径对象
- JavaFX - LineTo 路径对象
- JavaFX - HLineTo 路径对象
- JavaFX - VLineTo 路径对象
- JavaFX - QuadCurveTo 路径对象
- JavaFX - CubicCurveTo 路径对象
- JavaFX - ArcTo 路径对象
- JavaFX 颜色和纹理
- JavaFX - 颜色
- JavaFX - 线性渐变图案
- JavaFX - 径向渐变图案
- JavaFX 文本
- JavaFX - 文本
- JavaFX 效果
- JavaFX - 效果
- JavaFX - 颜色调整效果
- JavaFX - 颜色输入效果
- JavaFX - 图片输入效果
- JavaFX - 混合效果
- JavaFX - 辉光效果
- JavaFX - 泛光效果
- JavaFX - 方框模糊效果
- JavaFX - 高斯模糊效果
- JavaFX - 运动模糊效果
- JavaFX - 反射效果
- JavaFX - 棕褐色调效果
- JavaFX - 阴影效果
- JavaFX - 投影效果
- JavaFX - 内阴影效果
- JavaFX - 光照效果
- JavaFX - 远光灯效果
- JavaFX - 聚光灯效果
- JavaFX - 点光源效果
- JavaFX - 位移贴图
- JavaFX - 透视变换
- JavaFX 动画
- JavaFX - 动画
- JavaFX - 旋转动画
- JavaFX - 缩放动画
- JavaFX - 平移动画
- JavaFX - 淡入淡出动画
- JavaFX - 填充动画
- JavaFX - 描边动画
- JavaFX - 顺序动画
- JavaFX - 并行动画
- JavaFX - 暂停动画
- JavaFX - 路径动画
- JavaFX 图片
- JavaFX - 图片
- JavaFX 3D 形状
- JavaFX - 3D 形状
- JavaFX - 创建长方体
- JavaFX - 创建圆柱体
- JavaFX - 创建球体
- 3D 对象的属性
- JavaFX - 剔除面属性
- JavaFX - 绘图模式属性
- JavaFX - 材质属性
- JavaFX 事件处理
- JavaFX - 事件处理
- JavaFX - 使用便捷方法
- JavaFX - 事件过滤器
- JavaFX - 事件处理器
- JavaFX UI 控件
- JavaFX - UI 控件
- JavaFX - 列表视图
- JavaFX - 手风琴
- JavaFX - 按钮栏
- JavaFX - 选择框
- JavaFX - HTML 编辑器
- JavaFX - 菜单栏
- JavaFX - 分页
- JavaFX - 进度指示器
- JavaFX - 滚动窗格
- JavaFX - 分隔符
- JavaFX - 滑块
- JavaFX - 微调器
- JavaFX - 分割窗格
- JavaFX - 表格视图
- JavaFX - 标签页窗格
- JavaFX - 工具栏
- JavaFX - 树视图
- JavaFX - 标签
- JavaFX - 复选框
- JavaFX - 单选按钮
- JavaFX - 文本字段
- JavaFX - 密码字段
- JavaFX - 文件选择器
- JavaFX - 超链接
- JavaFX - 工具提示
- JavaFX - 警报框
- JavaFX - 日期选择器
- JavaFX - 文本区域
- JavaFX 图表
- JavaFX - 图表
- JavaFX - 创建饼图
- JavaFX - 创建折线图
- JavaFX - 创建面积图
- JavaFX - 创建条形图
- JavaFX - 创建气泡图
- JavaFX - 创建散点图
- JavaFX - 创建堆叠面积图
- JavaFX - 创建堆叠条形图
- JavaFX 布局面板
- JavaFX - 布局面板
- JavaFX - HBox 布局
- JavaFX - VBox 布局
- JavaFX - BorderPane 布局
- JavaFX - StackPane 布局
- JavaFX - TextFlow 布局
- JavaFX - AnchorPane 布局
- JavaFX - TilePane 布局
- JavaFX - GridPane 布局
- JavaFX - FlowPane 布局
- JavaFX CSS
- JavaFX - CSS
- JavaFX 多媒体
- JavaFX - 处理多媒体
- JavaFX - 播放视频
- JavaFX 有用资源
- JavaFX - 快速指南
- JavaFX - 有用资源
- JavaFX - 讨论
JavaFX - 选择框
选择框 (ChoiceBox) 是一个预定义选项的下拉列表,允许用户一次选择其中一个选项。它始终在框的顶部显示当前选择的选项,当用户点击选择框时,它会显示所有其他可用选项的下拉列表。
在 JavaFX 中,选择框由名为 ChoiceBox 的类表示。此类属于包 javafx.scene.control。通过实例化此类,我们可以在 JavaFX 中创建一个 ChoiceBox 节点。
此类有两个构造函数,如下所示:
ChoiceBox() - 用于创建没有标题面板的手风琴。
ChoiceBox(ObservableList<t> items) - 它将创建一个具有指定标题面板的手风琴。(此处原文有误,应为创建带有指定项的选择框)
在 JavaFX 中创建选择框
我们需要按照以下步骤在 JavaFX 中创建 ChoiceBox。
步骤 1:实例化 ChoiceBox 类
在 JavaFX 中,选择框是通过实例化名为 ChoiceBox 的类创建的,该类属于包 javafx.scene.control。像下面这样在 start() 方法内实例化此类:
//Instantiating the ChoiceBox class ChoiceBox<String> box = new ChoiceBox<String>();
步骤 2:向 ChoiceBox 添加项
我们使用 ObservableList 将项添加到 JavaFX 中的 ChoiceBox。它保存所有具有指定类型(例如 String)的项。
//Retrieving the observable list ObservableList<String> oslist = box.getItems(); //Adding items to the list oslist.addAll("Windows7", "Windows8", "Windows10", "Windows11", "MAC OS");
注意 - 有时,我们可能需要为 ChoiceBox 指定其他说明,在这种情况下,我们可以使用 JavaFX 的 Label 或 TextField 类。
步骤 3:启动应用程序
创建 ChoiceBox 并添加其项后,请按照以下步骤正确启动应用程序:
首先,通过将 ChoiceBox 对象作为参数值传递给其构造函数来实例化名为 Scene 的类。我们还可以将应用程序屏幕的尺寸作为可选参数传递给此构造函数。
然后,使用 Stage 类的 setTitle() 方法设置舞台的标题。
现在,使用名为 Stage 的类的 setScene() 方法将 Scene 对象添加到舞台。
使用名为 show() 的方法显示场景的内容。
最后,在 launch() 方法的帮助下启动应用程序。
示例
以下 JavaFX 程序演示了如何在 JavaFX 应用程序中使用 ChoiceBox。将此代码保存在名为 JavafxChoiceBox.java 的文件中。
import javafx.application.Application; import javafx.collections.ObservableList; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.control.ChoiceBox; import javafx.scene.control.Label; import javafx.stage.Stage; public class JavafxChoiceBox extends Application { public void start(Stage stage) { //Instantiating the ChoiceBox class ChoiceBox<String> box = new ChoiceBox<String>(); //Retrieving the observable list ObservableList<String> oslist = box.getItems(); //Adding items to the list oslist.addAll("Windows7", "Windows8", "Windows10", "Windows11", "MAC OS"); //Setting the position of the choice box box.setTranslateX(200); box.setTranslateY(15); //Setting the label Label setlabel = new Label("Select your Operating System:"); setlabel.setTranslateX(20); setlabel.setTranslateY(20); //Adding the choice box to the group Group newgrp = new Group(box, setlabel); //Setting the stage Scene scene = new Scene(newgrp, 500, 200); stage.setTitle("Choice Box in JavaFX"); stage.setScene(scene); stage.show(); } public static void main(String args[]){ launch(args); } }
要从命令提示符编译和执行保存的 Java 文件,请使用以下命令:
javac --module-path %PATH_TO_FX% --add-modules javafx.controls JavafxChoiceBox.java java --module-path %PATH_TO_FX% --add-modules javafx.controls JavafxChoiceBox
输出
当我们执行上述代码时,它将生成以下输出。
使用其参数化构造函数创建选择框
前面,我们使用了 ChoiceBox 类的空构造函数来创建一个选择框。但是,还有另一种方法可以实现相同的功能。我们可以通过使用 observableArrayList 传递列表项作为参数来使用参数化构造函数。
示例
以下是将使用 ChoiceBox 类参数化构造函数创建选择框的 JavaFX 程序。将此代码保存在名为 JavafxChoiceBox.java 的文件中。
import javafx.application.Application; import javafx.collections.*; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.control.ChoiceBox; import javafx.scene.control.Label; import javafx.stage.Stage; public class JavafxChoiceBox extends Application { public void start(Stage stage) { //Creating a ChoiceBox ChoiceBox<String> box = new ChoiceBox<String> ( FXCollections.observableArrayList( "Windows7", "Windows8", "Windows10", "Windows11", "MAC OS")); //Setting the position of the choice box box.setTranslateX(200); box.setTranslateY(15); //Setting the label Label setlabel = new Label("Select your Operating System:"); setlabel.setTranslateX(20); setlabel.setTranslateY(20); //Adding the choice box to the group Group newgrp = new Group(box, setlabel); //Setting the stage Scene scene = new Scene(newgrp, 500, 200); stage.setTitle("Choice Box in JavaFX"); stage.setScene(scene); stage.show(); } public static void main(String args[]){ launch(args); } }
使用以下命令从命令提示符编译和执行保存的 Java 文件。
javac --module-path %PATH_TO_FX% --add-modules javafx.controls JavafxChoiceBox.java java --module-path %PATH_TO_FX% --add-modules javafx.controls JavafxChoiceBox
输出
执行后,上述程序将生成一个 JavaFX 窗口,显示以下输出。