JButton を拡張する ImageButton というカスタム ボタン クラスがあります。その中に、JButton の setEnabled メソッドではなく、呼び出したい 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);
}
}