Java:如何用new创建实现ActionListener的JPanel实例并直接覆写方法
当然可以!你想要的其实是用匿名内部类来实现这个需求,你之前的写法犯了个语法小错误——implements ActionListener不能直接放在new JPanel()后面。
Java里创建这种“继承父类+实现接口”的匿名类,不需要显式写implements关键字,只要在匿名类的类体里实现接口要求的方法就行。编译器会自动识别这个子类实现了对应的接口。
正确的代码应该是这样的:
JPanel panel = new JPanel() { @Override public void actionPerformed(ActionEvent ae) { // 在这里写你的事件处理逻辑,比如: System.out.println("按钮被点击了!"); } };
这样创建出来的panel既是JPanel的实例,又完美实现了ActionListener接口,你可以直接把它当作监听器使用,比如:
JButton btn = new JButton("点击我"); btn.addActionListener(panel);
完全不用额外定义一个新类,一个匿名内部类就搞定啦!
内容的提问来源于stack exchange,提问作者striderhobbit
相关产品推荐
相关产品推荐

