我的课程从 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
}