我想使用 new
运算符创建一个 JPanel
实例,该实例实现 ActionListener
并直接重写 actionPerformed
方法。
我试过了
JPanel panel = new JPanel implements ActionListener() {
@Override
public void actionPerformed(ActionEvent ae) {
// ...
}
};
但是由于语法错误,这不起作用。
当然,我可以定义一个像 JPanelWithActionListener
这样的新类,并使用 new
调用这个类,但是有没有办法只用一行来完成它?
最佳答案
这在 Java 中是不可能的 - Java 中没有匿名类型。
您的代码 new JPanel Implements ActionListener() {/*...*/};
与此代码等效。
class JPanelWithActionListener extends JPanel implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
}
}
JPanel panle = new JPanelWithActionListener();
您想要创建一个新类型 JPanelWithActionListener
而不定义类(因此,该类是匿名的)。
关于Java:创建实现接口(interface)的类实例的简写形式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48379777/