检测鼠标点击 SELECTION Editable ComboBox JavaFX

2023-12-31

这个问题乍一看似乎很简单,但我已经困扰了几天了。

所以,我的问题是,当组合框选择打开并且单击鼠标来选择选项时,我想检测鼠标单击和选择。

因此,它应该做的是检测所选内容上的鼠标单击并获取所选值:

PS:我的 ComboBox 的代码可以在这里看到:单击时选择 JavaFX 可编辑组合框文本 https://stackoverflow.com/questions/39830833/select-javafx-editable-combobox-text-on-click

请随时提出其他问题。


只需使用单元工厂,并向单元注册一个处理程序:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.ComboBox;
import javafx.scene.control.ListCell;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class ComboBoxMouseClickOnCell extends Application {

    @Override
    public void start(Stage primaryStage) {
        ComboBox<String> combo = new ComboBox<>();
        combo.getItems().addAll("One", "Two", "Three");
        combo.setCellFactory(lv -> {
            ListCell<String> cell = new ListCell<String>() {
                @Override
                protected void updateItem(String item, boolean empty) {
                    super.updateItem(item, empty);
                    setText(empty ? null : item);
                }
            };
            cell.setOnMousePressed(e -> {
                if (! cell.isEmpty()) {
                    System.out.println("Click on "+cell.getItem());
                }
            });
            return cell ;
        });

        Scene scene = new Scene(new StackPane(combo), 300, 180);
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

检测鼠标点击 SELECTION Editable ComboBox JavaFX 的相关文章

随机推荐

  • 如何在 Ubuntu 上的 GTK3 (GI) 和 Python 3 中获取剪贴板内容

    在 Python 2 中 通过我的机器 Ubuntu 12 10 中安装的内容 我可以执行以下操作 import gtk cb gtk clipboard get content cb wait for text 从剪贴板获取文本 然而 在
  • 规避“catch_warnings”上下文管理器错误,该错误会重置警告注册表,导致无限打印警告

    在我正在使用的模块深处 xarray 但这并不重要 catch warnings上下文管理器导致警告被一遍又一遍地打印 而不是像它应该的那样只打印一次 如果没有这样的上下文管理器 行为将如预期 cat mwe py usr bin env
  • 如何将 g++ 从 MinGW 添加到 PATH

    我在 Windows 10 上使用 Visual Studio Code 并尝试构建一个程序 称为Bus从源文件Bus cpp 与来自 MinGW 的 g 我使用从之前的线程中读取的各种方法修改了tasks json 文件 我提供了task
  • PHP 和“打开”mysqli

    我无法找到有关如何 打开 mysqli 的文档 我正在运行 OS X SL 据我了解 由于安装了 php5 mysqli 扩展也应该已经存在 这就像在 php ini 中添加 LoadModule 行一样简单吗 如果我需要重新编译 php
  • 使用 Google API 的 Chrome 清单

    我需要一些关于如何获取扩展的 chrome 清单以允许服务器和应用程序之间进行 Google API 对话的建议 当我直接指向应用程序 而不是扩展 时 应用程序加载正常 但是我的问题是 当我将其作为扩展加载时 出现以下错误 Refused
  • Oracle 查询作为 SSIS 中的源定义了错误的数据类型

    我有一个有点复杂的查询 我想将其用作 SSIS 包中的源 我创建 OLE DB 源 将访问模式指定为 SQL 并将查询粘贴到命令文本框中 当我单击 预览 时 示例数据会返回 一切看起来都很好 但是 当我尝试运行该包时 我收到 外部列与数据源
  • 当我使用 -std=gnu99 编译时,我还应该定义 _GNU_SOURCE 吗?

    我使用了一些 GNU 扩展 并意识到如果我将 gnu99 设置为 C 标准来使用 我可以省略 define GNU SOURCE gnu99 是否暗示 GNU SOURCE 或者使用它是否仍然更安全或强制以避免问题 您应该区分语言和库功能
  • IE7 中的开发人员工具可查看控制台日志消息

    在 IE 8 中 我看到了一个开发人员工具部分 并且能够访问其 javascript 控制台并查看我在其中编写的控制台日志 但我在 IE 7 中找不到这样的东西 它在哪里 有吗 我只想在 IE 7 中查看控制台日志命令的输出 开发人员工具已
  • 为什么LOOP在8086上比DEC,JNZ快?

    我的教授声称 LOOP 在 8086 上更快 因为只获取一条指令而不是两条指令 就像dec cx jnz 所以我认为我们通过避免每次迭代的额外获取和解码来节省时间 但在讲座的早些时候 他还提到 LOOP 在底层与 DEC JNZ 做同样的事
  • 组织大型 javascript 文件 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我已经开始为网站积累相当多行 Javascript 代码 到目前为止 所有内容都在一个文件中 并且该文件变得无法维护 如果一行中有错误 整个文件
  • Django 的 javascript 中的模板标签

    我的应用程序urls py is from django urls import path from import views app name javascript urlpatterns path create table views
  • jQuery 设置 flash wmode 参数

    我想知道是否有任何 jQuery 插件可用于在运行时将 wmode 更改为透明 和wibiya类似的东西 我尝试谷歌搜索 但找不到任何确切的插件来完成这项工作 我找到的唯一资源是 http www onlineaspect com 2009
  • Android - 如何获取 EditText(数字)然后将其转换为整数以用于数学?

    我想知道如何获取用户可以在其中输入数字的 EditText 区域 然后将其设为整数 以便可以在程序中使用它进行加法 减法 除法等 基本上我需要测试输入能够在代码中的计算器中使用 然后需要将其放入 TextView 或字符串中 以便用户可以看
  • 将企业库注册到 GAC 后无法解决类型运行时错误

    我致力于将企业库程序集注册到全局程序集缓存 GAC 中 我使用的是用自己的密钥签名的企业库 5 0 版 并且我在许多 NET 4 0 应用程序中使用这些程序集 成功将企业库程序集注册到 GAC 后 应用程序启动并显示以下消息 无法解析类型
  • AppDomain.CurrentDomain.SetupInformation.PrivateBinPath 为空

    当我启动只有一个 AppDomain 的应用程序时 AppDomain CurrentDomain SetupInformation PrivateBinPath一片空白 即使我设置了探测路径MyApp exe config如下所示 我本以
  • 替换字符串中最后一次出现的字符

    javascript 中有没有一种简单的方法来替换给定字符串中最后一次出现的 下划线 你不需要 jQuery 只需要一个正则表达式 这将删除最后一个下划线 var str a b c console log str replace 1 a
  • Django:更改可选 ImageField 的 url

    通过信号我检查我的模型是否属于一个类别 如果是 我想将可选的 ImageField 更改为特定的 url 如何才能实现这一目标 下面的代码不起作用 我收到 无法设置属性 错误 因为它是可选字段 并且在保存时它是空白的 这是我的示例模型 cl
  • 如何使用shutil让python文件在计算后进行自我复制?

    所以我有一个 python 程序 它将素数写入 csv 文件 我现在希望我的 python 文件在运行所有内容后制作自身的副本 作为我调整原始文件时的备份 到目前为止 我通过让 python 程序创建一个新的 py 文件 然后在其中写入所有
  • 如何在服务器端 Blazor 中访问 HttpContext?

    我需要访问HttpContext在页面 cshtml 中 特别是请求 然后是 cookie 尽管可用 HttpContextAccessor总是有一个null存储在其中的值HttpContext财产 任何想法将不胜感激 提前致谢 编辑 我使
  • 检测鼠标点击 SELECTION Editable ComboBox JavaFX

    这个问题乍一看似乎很简单 但我已经困扰了几天了 所以 我的问题是 当组合框选择打开并且单击鼠标来选择选项时 我想检测鼠标单击和选择 因此 它应该做的是检测所选内容上的鼠标单击并获取所选值 PS 我的 ComboBox 的代码可以在这里看到