如何更改哪个组件正在监听事件

Posted

技术标签:

【中文标题】如何更改哪个组件正在监听事件【英文标题】:How to change which Component is listening for events 【发布时间】:2011-11-16 11:43:05 【问题描述】:

我正在尝试以编程方式在按钮之间循环,因此当我向右/向左或向上/向下移动时,我需要能够更改哪个按钮正在监听事件。

我试过 button.setSelection(true);继承自 AbstractButton 但这显然不是一回事。

到目前为止,我环顾四周,并没有发现太多关于这个困境的信息,如果你愿意,请指路。

更新:我真正想做的就是以编程方式给按钮焦点。我所看到的只是方法中的“setFocusable”等;我该怎么做:

Button1.giveFocus();??

【问题讨论】:

你是什么意思?所有按钮都监听动作事件。试着问你的问题,就好像我们不知道你目前的计划一样。 组件方法requestFocusInWindow() 可能会做你想做的事。 这就是我想要的,谢谢。似乎它一直都在那里,我想它只是没有像它应该的那样跳出来,谢谢。 不客气,但是再次,在这里提出问题时,请假设我们完全不了解您的项目并且无法读心,这将为您和我们节省很多不必要的 cmets和时间。 【参考方案1】:

通常,您总是向组件添加事件侦听器,然后才开始侦听事件:)

如果您将mouse listener 及其方法视为

public void mouseEntered(MouseEvent e) 
       saySomething("Mouse entered", e);
    

    public void mouseExited(MouseEvent e) 
       saySomething("Mouse exited", e);
    

祝你好运

【讨论】:

以上是关于如何更改哪个组件正在监听事件的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Angular 1.5 组件中监听范围事件?

事件监听及处理

监听用户更改事件(多用户设备)

如何监听 AngularJS 组件中的事件?

在页面 url 上创建事件已更改

c#如何监听复制(剪切)事件