我的课程从DefaultTableModel扩展
我试试:
super.removeRow(...);
和
this.removeRow(...);
为什么它们都有效?
答案 0 :(得分:5)
super
指的是超级(父)类型的实现。
this
引用当前类型的实现(如果存在),否则查找继承树,即。与super
相同。
根据您的课程扩展DefaultTableModel
的方式,他们可能会调用相同的方法。
答案 1 :(得分:3)
不是答案,但this.whatever
在大多数复杂的Swing GUI
super.removeRow(...);
和
this.removeRow(...);
应该是(我的观点要避免....)
myTableModel.removeRow()
- 例如((DefaultTableModel) table.getModel()).removeRow(row);
或您在XxxTableModel中重写
public void removeRowAt(int row) {
答案 2 :(得分:1)
实际上他们正在调用相同的方法,即父类中的removeRow
。
仅在您决定覆盖子课程中removeRow
的情况下,您可以拨打super.removeRow()
这样的电话:
@Override
void removeRow() {
// call parent class's removeRow
super.removeRow()
// rest of implementation
}