我加入代码:
mode.addRow(srcdata);javac时报错:
local variable srcdata is accessed from within inner class;needs to be declared final
            model.addRow(srcdata);
                         ^
local variable model is accessed from within inner class;needs to be declared final
            model.addRow(srcdata);
            ^

解决方案 »

  1.   

    我将代码做了如下修改,能够编译通过了,但不能在屏幕上显示出增加的行!!如何才能让它流畅增加呢?
    import javax.swing.*;
    import java.awt.event.*;
    import javax.swing.table.*;
    import java.awt.event.KeyEvent;
    public class no4 extends JApplet  implements ActionListener{
    Container c1=getContentPane();
    JTable tbl_params=new JTable();
    public void init() { 
    final Vector srcdata=new Vector();    //此处我将srcdata设为:final
    String[] columnName={"字段1","字段2"};
    Vector rowdata=new Vector(2);
    rowdata.add("");
    rowdata.add("");
    srcdata.add(rowdata);
    Vector cname=new Vector(2);
    cname.add(columnName[0]);
    cname.add(columnName[1]);
    final DefaultTableModel model=new DefaultTableModel(srcdata,cname); //此处我将model设为:final
    tbl_params.setModel(model);
    tbl_params.repaint();
    tbl_params.updateUI();
    c1.add(tbl_params);tbl_params.getModel().addTableModelListener(
    new TableModelListener()  {
     public void tableChanged(TableModelEvent e){       model.addRow(srcdata);
                                                                                                                          }
                             });
    }}