关于SWING中的DefaultCellEditor类的讲解,请老师以实战通俗的角度,而不是使用API文档上的解释,谢谢

时间:2008-08-26 11:07:01   来源:论坛整理  作者:  编辑:chinaitzhe
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();
}
}
网友回复://请问这里调用super(jtf)是为了什么?
直接调用父类的构造方法。

后面的几个方法,方法体中都是直接调用了父类的方法,没有自己的其他代码,这样的方法直接去掉就可以了,没用。
网友回复:老师,请指示一下,这些方法通俗的说,是这个编辑器类中,具体做了什么,谢谢!!!!!!

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();
}
}


//请问这里调用super(jtf)是为了什么?
直接调用父类的构造方法。 可不可以不调用父类的构造方法呢? 书上的例子,我只是改了变量名称来实验,但真的让人没法理解

意思是,写不写到这个类中来,都是一样的吗?
public Object getCellEditorValue() {//请问getCellEditorValue方法具体做了什么?
return new String(tmpjtf.getText());
}

网友回复:不可以不调用。因为DefaultCellEditor没有默认构造方法,编译器没法自己加。所以必须你自己调用。
网友回复:这个DefaultCellEditor的三个构造方法:
DefaultCellEditor(JCheckBox checkBox)
构造一个使用复选框的 DefaultCellEditor 对象。
DefaultCellEditor(JComboBox comboBox)
构造一个使用组合框的 DefaultCellEditor 对象。
DefaultCellEditor(JTextField textField)
构造一个使用文本字段的 DefaultCellEditor。

网友回复:public Object getCellEditorValue() {//请问getCellEditorValue方法具体做了什么?
return new String(tmpjtf.getText());
}
就是返回文本字段tmpjtf的值。
网友回复:public Component getTableCellEditorComponent(JTable table,
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();
}
}
关键字:通俗,实战,角度,老师,

文章评论

共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面