如何访问监听器的源

How to access a Listener's source

我正在尝试使用一个通用的 ActionListener,它对使用 Java 和 Swing 调用它的组合框有所帮助。

有没有办法访问 ActionEvent 的源并将其作为组合框获取,以便访问其方法,例如 getSelectedIndex() 或 setSelectedIndex()? 这也适用于 FocusListener 吗?

谢谢。

编辑:

示例:

private class CbModalidadFocusListener extends FocusAdapter {
    @Override
    public void focusGained(FocusEvent e) {
        selection = someComboBox.getSelectedIndex();
    }
}

所需的行为类似于:

selection = e.getSource().getSelectedIndex();

编辑 2:

答案:

正如 Yole 所说,需要演员表:

( (JComboBox) e.getSource() ).getSelectedIndex()

所有 AWT 事件都有一个 getSource() 方法,returns 您需要:http://docs.oracle.com/javase/7/docs/api/java/util/EventObject.html#getSource%28%29