内部类监听器
时间: 2023-08-11 20:18:10 浏览: 46
内部类监听器是一种常见的事件处理方式,它通常用于处理用户界面上的各种事件,例如按钮点击、菜单选择等。内部类监听器是指将事件监听器作为外部类的内部类来实现的方式,这样可以方便地访问外部类的成员变量和方法,并且可以减少代码量和提高代码可读性。
下面是一个使用内部类监听器的示例代码,用于响应按钮的点击事件:
```java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MyFrame extends JFrame {
private JButton button;
public MyFrame() {
super("My Frame");
button = new JButton("Click me");
button.addActionListener(new ButtonClickListener());
add(button);
pack();
setVisible(true);
}
private class ButtonClickListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(MyFrame.this, "Button clicked!");
}
}
public static void main(String[] args) {
new MyFrame();
}
}
```
在这个例子中,我们定义了一个名为 `ButtonClickListener` 的内部类,它实现了 `ActionListener` 接口,用于处理按钮的点击事件。在 `MyFrame` 类的构造函数中,我们将一个 `ButtonClickListener` 实例作为参数传递给按钮的 `addActionListener` 方法,这样就可以在按钮被点击时调用 `ButtonClickListener` 的 `actionPerformed` 方法来处理事件。
需要注意的是,在 `ButtonClickListener` 类中,我们使用了 `MyFrame.this` 来表示当前 `ButtonClickListener` 实例所属的 `MyFrame` 对象,这样就可以在 `ButtonClickListener` 中访问 `MyFrame` 的成员变量和方法。