当前位置: 首页 > 知识库问答 >
问题:

将侦听器添加到JavaFX中的“自动完成”组合框

督劲
2023-03-14

我实现了一个ComboBox,它是可编辑的,并自动完成自己,类似于这个答案中的一个:https://stackoverflow.com/a/27384068/9611276

现在我想添加一个侦听器,当这个组合框中的值发生变化时,它会执行一些操作。大概是这样的:

combobox.getValueProperty().addListener((obs, oldV, newV) -> {...});

问题是,我无法访问组合框。getValueProperty()而不获取java。lang.ClassCastException。在上面的回答中,提到使用以下函数获取combobox值:

    public static <T> TgetComboBoxValue(ComboBox<T> comboBox) {
    if (comboBox.getSelectionModel().getSelectedIndex() < 0) {
        return null;
    } else {
        return comboBox.getItems().get(comboBox.getSelectionModel().getSelectedIndex());
    }
}

如何创建和访问属性以添加侦听器?

谢谢BR

共有1个答案

闻人浩波
2023-03-14

您可以将propertyChangeListener添加到该组合框中

 comboBox.addPropertyChangeListener(evt -> {

 });

或者,您可以触发自己的属性更改事件。其中2是combobox的旧值,3是combobox的新值。它也可以接受字符串、布尔值和其他基本类型。

 comboBox.firePropertyChange("samplePropertyChange", 2, 3);
 类似资料:
  • 问题内容: 我正在寻找一种将自动完成功能添加到JavaFX的方法ComboBox。经过大量搜索之后,该在这里提问了。 这AutoFillBox是已知的,但不是我要搜索的内容。我想要的是一个可编辑的组合框,在键入列表时应进行过滤。但是我也想打开列表而不输入并查看整个项目。 任何想法? 问题答案: 我找到了一个对我有用的解决方案: 你可以用 基于此,我根据自己的需要对其进行了自定义。 随时使用它,如果

  • 我正在寻找一种将自动完成添加到JavaFX的方法。 这个是已知的,但不是我正在搜索的。我想要的是一个可编辑的组合框,在输入时,列表应该被过滤掉。但我也想打开列表,而不必输入和查看所有项目。 知道吗?

  • 问题内容: 我有一个ArrayList,它向其中动态添加了一些对象,并且有一个JButton。运行我的程序时ArrayList为空,并且JButton设置为setEnabled(false)。我想在ArrayList中有2个或更多元素时启用我的按钮,如果ArrayList有一项或为空则再次禁用它。我该如何实现? 问题答案: 没有任何种类的通知机制。 我建议您编写自己的实现,该实现将委托给私有的实现

  • 是否有办法将AWT侦听器添加到SWT组件? 我以前制作了一个主要在AWT和Swing组件中运行的应用程序。现在,我有热键功能,它依赖于一个定制的库,该库监听全局键事件并返回相应的AWT键代码。 当我改变整个应用程序并使用SWT组件时,我的问题就出现了。正如我们所知,一些键现在返回一个不同的键代码,这扰乱了整个热键功能。 我想到的最初解决方案是: A.使用javax。摆动jtextfield作为my

  • 我不知道如何在comboxbox上实现焦点侦听器。我知道这不是一件简单的事情,但其他人似乎已经让它工作[1][2][3],但是在仔细检查每个结果后,我无法复制他们的结果。在网络上进行了广泛的搜索,查看了最新的Oracle指南,Oracle文档等之后,我来到了这里。我的问题很简单: 目标是创建一个与谷歌搜索基本相同的字段。您可以输入搜索查询,它将在文本字段下方的下拉列表中填充可能的搜索匹配项。如果所

  • 问题内容: 给定布局 有没有一种方法可以将侦听器添加到活动中的任何新“线程”插入中,例如/ activity / * / thread? 当添加了新的活动时,我正在获取这些活动的提要,但是在附加线程时,不会触发任何事件。我是否需要将[thread]部分移到它自己的根目录下,并将线程ID与活动ID匹配,才能知道何时针对主活动线程进行线程注释? 问题答案: 根据您的评论更新答案。 您想听: 与其嵌套,