【发布时间】:2019-11-09 23:30:47
【问题描述】:
我正在尝试更改子类中的按钮操作,因为表单几乎完全是除了请求 ID 之外的表单。我尝试做的是创建一个ActionListener 对象并将其实例化为一个匿名类的对象,如下所示:
class ParentClass extends JPanel{
JButton button;
ActionListener buttonAction;
ParentClass{
button = new JButton("Parent Action");
buttonAction = new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("The button was clicked by the parent class");
}
};
button.add(buttonAction);
add(button);
}
}
class ChildClass extends ParentClass{
JButton button;
ActionListener buttonAction;
ChildClass{
super();
buttonAction = new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("The button was clicked by the child class");
}
};
}
}
public static void main(String[] args){
JFrame frame = new JFrame;
frame.add(new ChildClass());
frame.setSize(600, 500);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
我尝试使用此方法,但从未调用 buttonAction 的 actionPerformed。如何使父类和子类的按钮操作不同?
【问题讨论】:
标签: java swing inheritance actionlistener anonymous-class