私のクラスは DefaultTableModel から拡張されました
私は試します:
super.removeRow(...);
と
this.removeRow(...);
なぜ両方とも機能するのですか?
私のクラスは DefaultTableModel から拡張されました
私は試します:
super.removeRow(...);
と
this.removeRow(...);
なぜ両方とも機能するのですか?
super
スーパー (親) タイプの実装を参照します。
this
存在する場合は現在の型の実装を参照し、存在しない場合は継承ツリーを検索します。と同じsuper
です。
クラスの拡張方法によってはDefaultTableModel
、同じメソッドを呼び出している可能性があります。
答えではありませんがthis.whatever
、ほとんどの複雑な Swing GUI では綴りがかなり間違っている可能性があります
super.removeRow(...);
と
this.removeRow(...);
あるべきです(避けるべき私の見解....)
myTableModel.removeRow()
- 例えば((DefaultTableModel) table.getModel()).removeRow(row);
または XxxTableModel でオーバーライドします
public void removeRowAt(int row) {
実際には、同じメソッド、つまりremoveRow
あなたのケースの親クラスで呼び出しています。
子クラスでオーバーライドすることにした場合にのみ、次のremoveRow
ように呼び出すことができますsuper.removeRow()
。
@Override
void removeRow() {
// call parent class's removeRow
super.removeRow()
// rest of implementation
}