Java 使用EventHandler添加自定义ItemListener

Java 使用EventHandler添加自定义ItemListener,java,swing,event-handling,jcombobox,itemlistener,Java,Swing,Event Handling,Jcombobox,Itemlistener,我想添加一个itemstener到JComboBox,但是要使用漂亮的EventHandler 大概是这样的: comboBox.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) { // Do something

我想添加一个
itemstener
JComboBox
,但是要使用漂亮的
EventHandler

大概是这样的:

comboBox.addItemListener(new ItemListener() {
    @Override
    public void itemStateChanged(ItemEvent e) {
        if (e.getStateChange() == ItemEvent.SELECTED) {
            // Do something
        }
    }   
});
以以下形式:

comboBox.addItemListener((ItemListener)EventHandler.create(ItemListener.class, target, method, event));
然后用脉冲法:

public void myMethod(ItemEvent e) {
    if (e.getStateChange() == ItemEvent.SELECTED) {
        // Do something
    }
}

我用我的按钮做了一些类似的事情,并认为用这样更复杂的事件做同样的事情会很好。可能吗?

“可能吗?”是的,这是个好主意,可能不是。大多数侦听器都有不止一个事件回调,解决方案将调用反射,这需要在使用时仔细考虑,因为它不仅会影响性能,而且还会出现重构问题。由于反射/代理滥用,我也不建议使用它,还有@MadProgrammer已经说过的重构问题。只要不推荐,它是否可行其实并不重要。谢谢大家!