【发布时间】:2018-06-30 23:27:51
【问题描述】:
我想使用new 运算符创建一个JPanel 的实例,该实例实现ActionListener 并直接覆盖actionPerformed 方法。
我试过了
JPanel panel = new JPanel implements ActionListener() {
@Override
public void actionPerformed(ActionEvent ae) {
// ...
}
};
但由于语法错误,这不起作用。
当然,我可以定义一个像JPanelWithActionListener 这样的新类,然后用new 调用这个类,但是有没有什么方法可以在一行中完成?
【问题讨论】:
-
不,你需要有一个(超级)类型来实现。在您的情况下,您需要定义某种继承
JPanel和ActionListener的类/接口。但如果你已经拥有它,我建议不要使用匿名内部类。 -
无论如何,让面板实现
ActionListener通常是一种有问题的方法。
标签: java new-operator implements