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

解决方案 »

  1.   

    //请问这里调用super(jtf)是为了什么? 
    直接调用父类的构造方法。后面的几个方法,方法体中都是直接调用了父类的方法,没有自己的其他代码,这样的方法直接去掉就可以了,没用。
      

  2.   

    老师,请指示一下,这些方法通俗的说,是这个编辑器类中,具体做了什么,谢谢!!!!!!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()); 
            } 
      

  3.   

    不可以不调用。因为DefaultCellEditor没有默认构造方法,编译器没法自己加。所以必须你自己调用。
      

  4.   

    这个DefaultCellEditor的三个构造方法:
    DefaultCellEditor(JCheckBox checkBox) 
              构造一个使用复选框的 DefaultCellEditor 对象。 
    DefaultCellEditor(JComboBox comboBox) 
              构造一个使用组合框的 DefaultCellEditor 对象。 
    DefaultCellEditor(JTextField textField) 
              构造一个使用文本字段的 DefaultCellEditor。 
      

  5.   

    public Object getCellEditorValue() {//请问getCellEditorValue方法具体做了什么?
                return new String(tmpjtf.getText());
            } 
    就是返回文本字段tmpjtf的值。
      

  6.   

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