即使使用getModel,也无法向jTable添加行

时间:2014-10-17 14:43:59

标签: java swing jtable defaulttablemodel

我已经在这个网站上搜索了几个小时,关于如何将我的按钮连接到一个已经存在的表,这个表只需单击swing控件,添加一个表并通过改变字段来创建属性。

表的变量名是'table'。

当遇到这行代码时: table.getModel().insertRow(table.getRowCount(),new Object[]{nome[i],data[i]});

'insertRow'部分被重做,我似乎无法修复它。

         private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
           String direcdate=direc1.getText();


    File folder = new File(direcdate);
    File[] listOfFiles=folder.listFiles();


    String[] nome = new String[250];
    String[] data = new String[250];
    int i=0;


    for (File listOfFile : listOfFiles) {
        SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");

        if (listOfFile.isFile()) {

            nome[i]= listOfFile.getName ();
            data[i] =sdf.format(listOfFile.lastModified());


            i++;    
        }

        else if (listOfFile.isDirectory()) {

            nome[i]= "Folder: " + listOfFile.getName ();
            data[i] =sdf.format(listOfFile.lastModified());
            i++;
        }
    }


for(int increm=0;increm<i;increm++)
       {
      table.getModel().insertRow(table.getRowCount(),new Object[]{nome[i],data[i]});



            }


           } 

有任何想法或建议吗?

编辑:表格模型所在的位置:            公共类GAPAC_TESTE扩展了javax.swing.JFrame {

   public GAPAC_TESTE() {


    initComponents();
    ultimaalt.setText("0");
    jTextPane2.setText("Após escolher a diretoria, escolha uma das opções.");
  DefaultTableModel model = new javax.swing.table.DefaultTableModel();
table = new javax.swing.JTable(model);
}

2 个答案:

答案 0 :(得分:4)

table.getModel().

该方法返回一个TableModel。您是否查看了TableModel接口的API?它不包含insertRow(...)方法。

DefaultTableModel具有insertRow(...)方法。因此,假设您的表使用的是DefaultTableModel,则代码为:

DefaultTableModel model = (DefaultTableMode)table.getModel();
model.insertRow(...);

不要总是在单个陈述中写下您的代码。将语句分解为多个语句,以便您准确理解语句的哪个部分导致问题,并确保将变量分配给正确的类。

答案 1 :(得分:0)

如果实施TableModel,您将能够准确确定如何添加数据以及在表格中显示哪些数据类型。