我有一个名为 ImageButton 的自定义按钮类,它扩展了 JButton。在其中我有一个我想要调用的 setEnabled 方法,而不是 JButton 的 setEnabled 方法。
我的代码如下。在我的另一个类中,我创建了一个 ImageButton 的新实例,但是当我尝试使用 setEnabled 方法时,它直接转到 JButton 的 setEnabled 方法。甚至在我运行代码之前,我的 IDE 就告诉我从未使用过 ImageButton 的 setEnabled 方法。如果我将方法更改为“SetOn”,它工作正常。那么为什么我不能使用与超类相同的名称呢?我认为如果它是同名的,它应该隐藏超类方法?
public class ImageButton extends JButton{
public ImageButton(ImageIcon icon){
setSize(icon.getImage().getWidth(null),icon.getImage().getHeight(null));
setIcon(icon);
setMargin(new Insets(0,0,0,0));
setIconTextGap(0);
setBorderPainted(true);
setBackground(Color.black);
setText(null);
}
public void setEnabled(Boolean b){
if (b){
setBackground(Color.black);
} else {
setBackground(Color.gray);
}
super.setEnabled(b);
}
}