首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何检测双击JavaFx中的ComboBox (TableCell组合框)?

在JavaFX中,要检测ComboBox(TableCell组合框)的双击事件,可以通过以下步骤实现:

  1. 创建一个自定义的TableCell类,继承自TableCell,并重写updateItem方法。在updateItem方法中,设置双击事件的处理逻辑。
代码语言:txt
复制
import javafx.scene.control.TableCell;
import javafx.scene.control.ComboBox;
import javafx.scene.input.MouseEvent;

public class DoubleClickComboBoxTableCell<S, T> extends TableCell<S, T> {
    private ComboBox<T> comboBox;

    public DoubleClickComboBoxTableCell() {
        setOnMouseClicked((MouseEvent event) -> {
            if (event.getClickCount() == 2 && !isEmpty()) {
                startEdit();
                comboBox.show();
            }
        });
    }

    @Override
    protected void updateItem(T item, boolean empty) {
        super.updateItem(item, empty);

        if (empty) {
            setText(null);
            setGraphic(null);
        } else {
            if (isEditing()) {
                if (comboBox != null) {
                    comboBox.setValue(item);
                }
                setText(null);
                setGraphic(comboBox);
            } else {
                setText(item.toString());
                setGraphic(null);
            }
        }
    }

    @Override
    public void startEdit() {
        super.startEdit();

        if (comboBox == null) {
            createComboBox();
        }

        comboBox.setValue(getItem());
        setText(null);
        setGraphic(comboBox);
    }

    @Override
    public void cancelEdit() {
        super.cancelEdit();

        setText(getItem().toString());
        setGraphic(null);
    }

    private void createComboBox() {
        comboBox = new ComboBox<>();
        comboBox.getItems().addAll(/* 添加ComboBox的选项 */);
        comboBox.setOnAction((event) -> {
            commitEdit(comboBox.getValue());
        });
    }
}
  1. 在TableView中使用自定义的TableCell类。假设有一个名为Person的类,其中有一个属性为gender,可以使用DoubleComboBoxTableCell来编辑gender属性。
代码语言:txt
复制
import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.Scene;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.stage.Stage;

public class Main extends Application {
    private TableView<Person> tableView = new TableView<>();
    private ObservableList<Person> data = FXCollections.observableArrayList(
            new Person("John", "Male"),
            new Person("Jane", "Female")
    );

    @Override
    public void start(Stage primaryStage) {
        TableColumn<Person, String> nameColumn = new TableColumn<>("Name");
        nameColumn.setCellValueFactory(cellData -> cellData.getValue().nameProperty());

        TableColumn<Person, String> genderColumn = new TableColumn<>("Gender");
        genderColumn.setCellValueFactory(cellData -> cellData.getValue().genderProperty());
        genderColumn.setCellFactory(column -> new DoubleClickComboBoxTableCell<>());

        tableView.getColumns().addAll(nameColumn, genderColumn);
        tableView.setItems(data);

        primaryStage.setScene(new Scene(tableView, 300, 200));
        primaryStage.show();
    }

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

在上述代码中,我们创建了一个TableView,并添加了两列,其中gender列使用了自定义的TableCell类DoubleComboBoxTableCell。双击gender单元格时,会弹出一个ComboBox供选择。

这是一个简单的示例,你可以根据实际需求进行修改和扩展。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

1-3 Winform 常用控件(3

8.案例学习:使用组合控件 本次实验目标是在FORM窗体上建立一个列表控件,两个组合控件以及一个文本控件,通过这些控件彼此之间关联,学习并掌握ComboBox组合控件主要属性和方法。...图1-15 ComboBox组合控件实现目标界面 根据图1-15所示,在窗体初始化时候加载部门信息到列表组合框内,上下组合DropDownStyle属性不同,上面为DropDown类型,下面为...当选择上面组合具体工作部门,选中信息将分别呈现在文本,列表和下面的列表之中。...图1-16 ComboBox组合控件DropDownStyle属性三种状态 u 实验步骤(2): 用鼠标双击窗体界面,进入.cs文件编辑状态准备进行开发。..."产品部"             this.listBox1.SelectedIndex = 1;             //请读者注意学习comboBox,listBox控件如何定位值

2.4K10

串口助手(简洁版)上位机软件零基础教程( C# + visual studio2017 )(二)

我们到上一章编好可视化窗体,去双击窗体空白处,就跳转到对应事件发生程序中去了。...ArryPort.Length; i++) { MycomboBox.Items.Add(ArryPort[i]); //将所有的可用串口号添加到 端口 对应组合...(), 来更新一下 “端口” 组合框下拉菜单串口信息。...3.打开串口后,串口开关按键颜色和文字就已经在程序中被修改了,而且还让两个组合发灰,变成不可操作状态 4.发送按钮按下事件(程序) 当按下串口发送按键后,就需要将发送文本数据通过串口发出。...ArryPort.Length; i++) { MycomboBox.Items.Add(ArryPort[i]); //将所有的可用串口号添加到 端口 对应组合

3.2K10

初识Windows程序

window 操作系统,处处是窗体 简单 强大 方便 灵活 步骤 新建项目  项目类型 visual C#项目 模板 window应用程序 用partial 将同一个窗体代码分开放在两个文件: 一个存放在...vs自动生成代码 冒号表示继承 像孩子继承父母特征所有窗体都继承Form 窗体标题 : Name 窗体图标: Icon 图片背景Backgroundimage 背景颜色 backcolor 最大化按钮...TextBox   txt 组合   ComboBox  Cbo 按钮   Button   btn 规范化命名可以提高程序可读性和可维护性 标签label image:标签上图像 text:显示文本...组合ComboBox Items:组合项 DropDownStyle:组合风格 Text:组合关联文本 SelectedIndex:当前选中项索引,从0开始 selectedItem...我们需要做 针对相关事件,编写相应事件处理程序 编写事件处理程序步骤 选中控件  在属性窗口中单击  找到事件  双击生成事件处理方法 编写处理代码 若事件事件处理方法未触发,请检查属性窗口中事件处理程序是否设置正确

4.3K40

VBA代码分享:可搜索数据验证+组合

在mrexcel.com,提供可搜索数据验证+组合就是解决这个问题一种方法,它有以下行为: 1.组合可以通过某些操作显示和隐藏,例如双击单元格。...2.可以在组合中键入一些关键字,键入时列表将随着键入值而缩小。 3.对于所有具有数据验证单元格,只需要一个组合。...可以到知识星球完美Excel社群下载带有代码和详细说明示例工作簿(ComboBox+DataValidate1.xlsm)。...效果演示如下图1: 图1 工作原理: - 在蓝色区域(列B,D,E)单元格具有数据有效性 - 双击蓝色区域中单元格将激活组合 - 输入关键字搜索,通过空格分隔,例如"fca" - 随着输入,显示结果会减少...键或ESC键 - 列表数字值将视为文本 这是一段通用代码,你可以按照示例工作簿说明将代码复制到你想要应用工作簿

1.5K20

VB基础:掌握listbox和combobox控件应用【VB学习笔记2020课堂版04】

简介 INTRODUCTIONlistbox列表控件和combobox组合控件用法类似,只是界面风格不同。 ?...课题04 列表和自动输入综合使用 授课:刘金玉 回顾知识,符合以下要求任务练习学生管理功能模块: 1.界面制作 2.功能开发 课程目标:VB基础:掌握listbox和combobox控件应用...理解:listbox列表控件和combobox组合控件用法类似,只是界面风格不同。...使用方法:val(字符串) 将返回一个数值类型数据 val详解:从字符串左侧开始检测是否是数字,直到检测到非数字位置,将检测数字转为数值。...获取listbox列表控件项数:listcount方法 通过索引获取列表中指定项文本:list(索引) 方法 案例:遍历列表所有项目 Dim i% For i = 0 To List1.ListCount

2K10

软件测试|超好用超简单Python GUI库——tkinter(十)

前言上文我们介绍了tkinter列表处理,我们在日常生活还会遇到组合情况,tkinter同样可以实现这个功能,下面我们来介绍一下tkinter如何实现组合。...但在有些情况下,比如列表项目过多时,若使用列表控件,列出所有选项就会显得界面格外臃肿,这时就需要用到 Combobox 控件,也就是下拉菜单控件(或称复合),该控件是列表控件改进版,具有更加灵活界面...注:Combobox 并不包含在 tkinter 模块,而是包含在tkinter.ttk子模块,因此若想使用 Combobox 控件,需要使用下面的导包方式:from tkinter import...下面通过一组简单示例进一步了解 Combobox 控件,示例代码如下:import tkinterfrom tkinter import ttk # 导入ttk模块,下拉菜单控件位于ttk子模块#...总结本文主要介绍了tkinter组合实现,组合使用比列表更为多见,更为方便,希望能够帮助到大家,后续我们将介绍tkinter单选框多选框如何实现。

1.2K10

基于STM32单片机设计红外测温仪(带人脸检测

比如: 金山办公旗下-WPS,字节跳动旗下-剪映,暴雪娱乐公司旗下-多款游戏登录器等等。Qt在车联网领域用也非常多,比如,哈佛,特斯拉,比亚迪等等很多车控屏整个系统都是采用Qt设计。...如果没有连接STM32设备,那么默认会显示一个正常固定温度值。界面上右边红色字,表示当前处理一帧图像耗时时间,电脑性能越好,检测速度越快。 (4) 拿到可执行文件之后如何运行?...然后双击“FaceTemperatureCheck.exe”运行程序。 未连接设备,也可以打开摄像头检测人脸,只不过温度值是一个固定正常温度值范围。...参数3:用来存储检测候选目标的内存缓存区域。 参数4:表示在前后两次相继扫描,搜索窗口比例系数。...如果min_neighbors 为 0, 则函数不做任何操作就返回所有的被检候选矩形,这种设定值一般用在用户自定义对检测结果组合程序上。

1.5K20

1-3 Winform 常用控件(

1-3 Winform 常用控件 u 本节学习目标: n System.Windows.Forms.Control基本结构 n 使用基本控件如标签、文本、按钮、列表组合 n 掌握窗体常用属性和方法...案例学习:建立第一个winForm应用——员工信息录入功能 本次实验目标是快速建立如图1-8员工信息录入窗体,通过该案例使读者快速掌握Winform 常用控件包括:标签控件,文本控件,按钮控件和组合...将文本,列表组合Enabled属性设置为False,即设置这些控件为不可用状态。 ?...图1-10 配置列表组合Items属性 u 实验步骤(3): 用鼠标双击“添加”按钮,进入.cs文件编辑状态准备进行开发。....Enabled = true;//设置所有代码为可用状态;             comboBox1.SelectedIndex = 0;//设置组合控件默认为第一个             textBox1

2.7K10

JavaFX 11发行说明

新功能 以下注释描述了JavaFX 11一些增强功能。有关完整列表,请参阅发行说明末尾表格。...不可编辑ComboBoxNPE 控制 JDK-8187432 ListView:启动时EditEvent索引不正确 控制 JDK-8192800 表自动调整大小会忽略列调整大小策略 控制 JDK...JDK-8197846 ComboBox:删除并重新添加后变为无法点击 控制 JDK-8197985 在ListView按Shift + DOWN会导致抛出异常 控制 JDK-8200285 TabDragPolicy.REORDER...版本号是错误 其他 JDK-8195799 在javafx模块中使用系统记录器而不是平台记录器 其他 JDK-8195800 消除对javafx模块sun.reflect.misc依赖 其他...其他 JDK-8180151 JavaFX错误地使用具有特定尺寸两个3D渲染场景图 场景图 JDK-8192056 从组或容器删除javafx.scene.shape.Sphere-objects

6.6K60

Easyui datagrid combobox输入非法输入判断与事件总结

输入值改变时触发事件 单选Combobox 针对单选Combobox 1、点选 通过点选下拉列表可选项,并自动收起下拉列表 如果选取项和当前输入值不一样,会先后触发事件:onSelect ->...onChange -> onHidePanel; 如果选取项和当前输入值一样,仅会触发事件:onHidePanel 2、输入 通过在Combobox输入手动输入数据 如果停止输入后数据和输入前值不一样...if (rowsSelected == undefined) { // 表明是手动输入值 // 循环遍历下拉列表选项,判断输入值是否存在选项...if_found) { $(this).combobox('clear'); // clear none 清除组合combobox值。...附:我早些前做法,如下,获取输入值,然后遍历逗号分隔每项是否在下拉列表,是的话停止遍历,进行下一个项检测,只要有一项不符则判断为非法输入。

3.3K30

基于 HTML5 3D 工业互联网展示方案

'// 填满父容器 }); 对于“货位统计表格”,我们采用是 HT 封装 TreeTableView 组件,以树和表格组合方式呈现 DataModel 数据元素属性及父子关系,并将这个“树表”...这个 header 是从 src/view 下 header.js 获取对象,为 ht.ui.RelativeLayout 相对定位布局器,分为 5 个部分:searchField 搜索、titleLabel...主要讲一下如何加载这个“货物” obj,我们在 G.js 文件中有定义一个 loadObj 函数,我们在代码顶部也有引入,导入 obj 文件之后就在“货物”库存增加这个“货物”: for (let...“归类”和“模型”类似,都是下拉,我们用 HT 封装 ht.ui.ComboBox 组合组件,跟 ht.ui.TextField 也是异曲同工,只是具体操作不同而已,HT 这样做使用上更简便更容易上手...);// 设置预览背景;可以是颜色或者图片等 comboBox.getInput().style.visibility = 'visible';// 获取组件内部 input style 样式

2.7K20

第68篇:javafx编写扫描器UI界面的线程死锁问题及坑点总结

在编写这个扫描工具过程,踩了一大堆坑,接下来把解决方法分享给大家。...2 javafx控件修改值过程测试 接下来再添加一行修改javafx控件文本代码:Quanjv.textarea.setText("test");,发现在100个线程操作下程序立马报错。...对于jdk8下javafx编译,很简单,直接编译成一个jar包就可以在jdk8上双击运行,因为jdk是自带javafx,但是对于更高版本jdk,比如说jdk11或者jdk17,默认是不带javafx...首先使用idea 2022新建项目,JDK选择大于等于jdk8版本即可,小于jdk8不支持javafx。 可以看到idea 2022版本,已经自动在pom.xml文件添加了javafx库了。...接下来是最重要一个步骤,我们需要新建一个主类,按照如下格式编写: 接下来需要设置如何去编译jar包文件,主类需要选择我们新建JavaFXBootstrap类,记住一定要删掉main\resources

31831

基于 HTML5 WebGL 3D 仓储管理系统

'//填满父容器 }); 对于“货位统计表格”,我们采用是 HT 封装 TreeTableView 组件,以树和表格组合方式呈现 DataModel 数据元素属性及父子关系,并将这个“树表”添加进垂直列...vBoxLayout : let shelfTreeTable = new ht.ui.TreeTableView();//树表组件,以树和表格组合方式呈现 DataModel 数据元素属性及父子关系...主要讲一下如何加载这个“货物” obj,我们在 G.js 文件中有定义一个 loadObj 函数,我们在代码顶部也有引入,导入 obj 文件之后就在“货物”库存增加这个“货物”: for (let...“归类”和“模型”类似,都是下拉,我们用 HT 封装 ht.ui.ComboBox 组合组件,跟 ht.ui.TextField 也是异曲同工,只是具体操作不同而已,HT 这样做使用上更简便更容易上手...);//设置预览背景;可以是颜色或者图片等 comboBox.getInput().style.visibility = 'visible';//获取组件内部 input style 样式 comboBox.setReadOnly

3.6K30

基于 HTML5 WebGL 3D 仓储管理系统

'//填满父容器 }); 对于“货位统计表格”,我们采用是 HT 封装 TreeTableView 组件,以树和表格组合方式呈现 DataModel 数据元素属性及父子关系,并将这个“树表”添加进垂直列...vBoxLayout : let shelfTreeTable = new ht.ui.TreeTableView();//树表组件,以树和表格组合方式呈现 DataModel 数据元素属性及父子关系...主要讲一下如何加载这个“货物” obj,我们在 G.js 文件中有定义一个 loadObj 函数,我们在代码顶部也有引入,导入 obj 文件之后就在“货物”库存增加这个“货物”: for (let...“归类”和“模型”类似,都是下拉,我们用 HT 封装 ht.ui.ComboBox 组合组件,跟 ht.ui.TextField 也是异曲同工,只是具体操作不同而已,HT 这样做使用上更简便更容易上手...);//设置预览背景;可以是颜色或者图片等 comboBox.getInput().style.visibility = 'visible';//获取组件内部 input style 样式 comboBox.setReadOnly

3.5K51

VB.NET数据库编程基础教程

(3)生成数据集类: 点击“数据→生成数据集”菜单命令,此时将出现“生成数据库”对话。在“新建”myDataSet作为要创建新数据集名称。确保选中“将此数据集添加到设计器”选项。...在“解决方案资源管理器”窗口中,右击项目名称,从快捷菜单中选择“属性”命令,在打开对话中点击“启动对象”组合并从列表中选择“frmtest”选项。然后点击“确定”按钮。...(2)打开组合并将各个文本绑定到相应字段。...程序运行后,点击“TextBox数据绑定”按纽,程序就会用myDataSet“student”数据来自动填充文本。...1.实现对数据记录浏览 在完成对窗体WinForm组件进行绑定后,实现对数据记录浏览操作关键就是要找到如何定位数据记录指针方法。

4.6K30

C++ Qt开发:ComboBox下拉组合组件

下拉组合组件常用方法及灵活运用。...在QtComboBox组合)是一种常用用户界面控件,它提供了一个下拉列表,允许用户从预定义选项中选择一个。...上述这些方法提供了对ComboBox进行配置、管理和与之交互灵活性。你可以根据具体应用需求使用这些方法,使ComboBox在你Qt应用程序按照期望方式工作。...如下图所示,我们分别增加三个ComboBox组件,其中前两个组件是默认,最后一个是Font ComboBox字体选择,其实该选择也是标准选择模板,只不过其默认为我们初始化了系统字体方便选择而已但在使用上与...通常情况下使用ComboBox组件与前几章中所示案例保持一致,只需要通过ui->comboBox_Main->调用不同属性即可实现赋值或取值,此处我们来演示一个更复杂需求,实现选择组件联动效果,即用户选择主选择时自动列出该主选择子项

68310

C++ Qt开发:ComboBox下拉组合组件

下拉组合组件常用方法及灵活运用。...在QtComboBox组合)是一种常用用户界面控件,它提供了一个下拉列表,允许用户从预定义选项中选择一个。...上述这些方法提供了对ComboBox进行配置、管理和与之交互灵活性。你可以根据具体应用需求使用这些方法,使ComboBox在你Qt应用程序按照期望方式工作。...如下图所示,我们分别增加三个ComboBox组件,其中前两个组件是默认,最后一个是Font ComboBox字体选择,其实该选择也是标准选择模板,只不过其默认为我们初始化了系统字体方便选择而已但在使用上与...通常情况下使用ComboBox组件与前几章中所示案例保持一致,只需要通过ui->comboBox_Main->调用不同属性即可实现赋值或取值,此处我们来演示一个更复杂需求,实现选择组件联动效果,即用户选择主选择时自动列出该主选择子项

1K10

Java FX制作小游戏

Java FX制作小游戏在全栈学习Java,了解如何使用Java FX创建图形化界面是很重要一步。本篇文章将向您展示如何使用Java FX制作一个简单小游戏。...Stage:Stage表示JavaFX应用程序主舞台,是JavaFX顶级容器实例。通过Stage类,可以设置应用程序标题、尺寸、图标等属性,并将场景(Scene)设置为舞台内容。...Control:Control是JavaFX控件类,用于构建用户界面上可交互组件。常见控件包括Button、Label、TextField、ComboBox、ListView等。...JavaFX事件可以是鼠标事件、键盘事件、焦点事件、动画事件等。Animation:Animation类和相关类用于实现动画效果。...总结通过这篇文章,我们学习了如何使用Java FX创建一个简单小游戏。我们了解了如何创建游戏窗口、处理用户输入以及显示游戏元素。

28610
领券