当前位置: 首页 > 面试题库 >

ComboBox SAME项目已选择动作侦听器

汪泓
2023-03-14
问题内容

如果选择了一个不同的值,组合框将触发一个事件。我还希望能够收听被选中的SAME项(即valueProperty不变)。似乎没有办法做到这一点。

我尝试扩展ComboBox并找到一种方法来监听关闭的小弹出菜单,但我什至无法访问它!我能做什么?

这是我正在尝试的:

class ResponsiveComboBox<E> extends ComboBox<E> {

    public ResponsiveComboBox() {
        super();
        assert getContextMenu() != null; //Asssertion failed!
        this.getContextMenu().setOnHiding((WindowEvent event) -> {
            fireEvent(new ActionEvent());
        });
    }

}

问题答案:
comboBox.showingProperty().addListener((obs, wasShowing, isShowing) -> {
    if (! isShowing) {
        System.out.println("Combo box popup hidden");
    }
});

更改值之前,可能会触发此事件处理程序。



 类似资料:
  • 除了使用之外,是否有其他方法可以侦听已选择的单元格(即使是带有)的单元格)? 我有一个带有行和列侦听器的JTable。当选择已经选择的单元格时,两个侦听器都不会触发: 我的目标是打开/关闭电池。它是有效的,除了监听器在选择一个已经选择的单元格时不会触发之外,这是通过上面的SSCCE表示的。 似乎没有任何监听器可以连接到(或者它的模型/选择模型)来处理这个问题,除非我使用并手动管理Cooridate

  • 我有一个表,其中有多个表项可用。其中,对于某些表项,设置了背景和前景色。 在选择彩色项目时,由于文本颜色为白色,文本很难阅读,因此,我需要将前面的颜色更改为默认颜色,即黑色。我是用选择侦听器完成的 成功地改变了颜色。 但是现在我正在选择任何其他没有着色的项目,所以我想删除上面的选择侦听器并将文本颜色设置为彩色即白色。我不知道如何使用。 有人能帮忙吗?

  • 问题内容: 每当尝试从中进行选择时,我都试图触发一个事件。 我遇到的问题是没有明显的方法。 我尝试使用,但从未触发。 没有覆盖的模型,我没有想法。 如何通知有关 选择更改的通知? 编辑:我要道歉。事实证明,我使用的是行为不佳的子类,但由于你的回答是好的,因此我将保留该问题。 问题答案: 它应该响应,如下所示: 正确地指出了也可以。但是,你可能会得到 ,一个用于取消选择先前选择的项目,另一个用于选择

  • 这看起来很简单,但我没有找到答案。 我有一个基本的的值没有改变,我也希望知道用户选择了一些东西并重新触发整个处理。所以可能不是我想要使用的,但我没有找到该使用什么。 有一个基本的select标记和一些选项在里面,这是可能的吗?如果不是,实现这一目标的最佳方法可能是什么?(我懒惰的手指宁愿实现一个自定义的React下拉列表,仅作为最后的手段)。 谢谢你们!

  • 单击选择元素显示此警告: [违规]将非被动事件侦听器添加到滚动阻止“鼠标滚轮”事件。将事件处理程序标记为“被动”以使页面更加响应。 问题是,这也扩大了谷歌浏览器中HTML页面的高度。在Chrome版本59.0中测试。3071.86(官方版本)(64位)在firefox中不会出现这种情况。 简单代码:https://jsfiddle.net/gurigraphics/2399mnyb 如果自定义滚动

  • 我使用Primeface 3.4.2自动完成。 在ManagedBean中,当我在自动完成中键入字符时选择一行时,我无法在方法{中获取值 这可能是什么原因?理想情况下,当我从自动完成值中选择一行时,我希望填充或填充jsf页面中的其他列。 自动完成的JSF代码 ManagedBean方法