public class JTextFieldEditor extends DefaultCellEditor {
JTextField tmpjtf;
public JTextFieldEditor(JTextField jtf) {
super(jtf); //请问这里调用super(jtf)是为了什么?
tmpjtf=new JTextField();
} public Component getTableCellEditorComponent(JTable table,
Object value,
boolean isSelected,
int row,
int column) //请问getTableCellEditorComponent方法具体做了什么? {
tmpjtf.setText("");
return tmpjtf;
} public Object getCellEditorValue() {//请问getCellEditorValue方法具体做了什么?
return new String(tmpjtf.getText());
} public boolean stopCellEditing() {//请问stopCellEditing方法具体做了什么?为什么返回的是super.stopCellEditing()
return super.stopCellEditing();
} public void fireEditingStopped() {//请问fireEditingStopped方法具体做了什么?为什么调用super.fireEditingStopped()
super.fireEditingStopped();
}
}
JTextField tmpjtf;
public JTextFieldEditor(JTextField jtf) {
super(jtf); //请问这里调用super(jtf)是为了什么?
tmpjtf=new JTextField();
} public Component getTableCellEditorComponent(JTable table,
Object value,
boolean isSelected,
int row,
int column) //请问getTableCellEditorComponent方法具体做了什么? {
tmpjtf.setText("");
return tmpjtf;
} public Object getCellEditorValue() {//请问getCellEditorValue方法具体做了什么?
return new String(tmpjtf.getText());
} public boolean stopCellEditing() {//请问stopCellEditing方法具体做了什么?为什么返回的是super.stopCellEditing()
return super.stopCellEditing();
} public void fireEditingStopped() {//请问fireEditingStopped方法具体做了什么?为什么调用super.fireEditingStopped()
super.fireEditingStopped();
}
}
直接调用父类的构造方法。后面的几个方法,方法体中都是直接调用了父类的方法,没有自己的其他代码,这样的方法直接去掉就可以了,没用。
Object value,
boolean isSelected,
int row,
int column) //请问getTableCellEditorComponent方法具体做了什么? {
tmpjtf.setText("");
return tmpjtf;
} public Object getCellEditorValue() {//请问getCellEditorValue方法具体做了什么?
return new String(tmpjtf.getText());
} public boolean stopCellEditing() {//请问stopCellEditing方法具体做了什么?为什么返回的是super.stopCellEditing()
return super.stopCellEditing();
} public void fireEditingStopped() {//请问fireEditingStopped方法具体做了什么?为什么调用super.fireEditingStopped()
super.fireEditingStopped();
}
}
//请问这里调用super(jtf)是为了什么?
直接调用父类的构造方法。 可不可以不调用父类的构造方法呢? 书上的例子,我只是改了变量名称来实验,但真的让人没法理解意思是,写不写到这个类中来,都是一样的吗?
public Object getCellEditorValue() {//请问getCellEditorValue方法具体做了什么?
return new String(tmpjtf.getText());
}
DefaultCellEditor(JCheckBox checkBox)
构造一个使用复选框的 DefaultCellEditor 对象。
DefaultCellEditor(JComboBox comboBox)
构造一个使用组合框的 DefaultCellEditor 对象。
DefaultCellEditor(JTextField textField)
构造一个使用文本字段的 DefaultCellEditor。
return new String(tmpjtf.getText());
}
就是返回文本字段tmpjtf的值。
Object value,
boolean isSelected,
int row,
int column) {
tmpjtf.setText("");
return tmpjtf;
} //请问getTableCellEditorComponent方法具体作用是什么?
public boolean stopCellEditing() {//请问stopCellEditing方法具体做了什么?
return super.stopCellEditing();
} public void fireEditingStopped() {//请问fireEditingStopped方法具体做了什么?
super.fireEditingStopped();
}
}