Java Can';即使使用getModel,也不要向jTable添加行

Java Can';即使使用getModel,也不要向jTable添加行,java,swing,jtable,defaulttablemodel,Java,Swing,Jtable,Defaulttablemodel,我已经在这个网站上搜索了好几个小时了,关于如何将我的按钮放到一个已经存在的表的a行,这个表是通过简单地单击swing控件创建的,然后添加一个表并通过属性更改字段 该表的变量名为“table” 当面对这一行代码时: table.getModel().insertRow(table.getRowCount(),新对象[]{nome[i],data[i]}) “insertRow”部分是红色的,我似乎无法修复它 private void jButton1ActionPerformed

我已经在这个网站上搜索了好几个小时了,关于如何将我的按钮放到一个已经存在的表的a行,这个表是通过简单地单击swing控件创建的,然后添加一个表并通过属性更改字段

该表的变量名为“table”

当面对这一行代码时:
table.getModel().insertRow(table.getRowCount(),新对象[]{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]});



            }


           } 
如果实现,您将能够准确地确定如何添加数据以及在表中显示哪些数据类型

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

table.getModel().
该方法返回一个TableModel。你看过TableModel接口的API了吗?它不包含
insertRow(…)
方法

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

DefaultTableModel model = (DefaultTableMode)table.getModel();
model.insertRow(...);
不要总是把代码写在一个单独的位置。将语句分解为多个语句,以便准确了解语句的哪一部分导致问题,并确保将变量分配给适当的类

该方法返回一个TableModel。你看过TableModel接口的API了吗?它不包含
insertRow(…)
方法

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

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

不要总是把代码写在一个单独的位置。将语句分解为多个语句,以便准确了解语句的哪一部分导致问题,并确保将变量分配给适当的类。

我在将tablemodel添加到现有表时遇到问题,因此我一直在尝试此方法。你能给我举个例子吗?编辑:我只需要知道下一步该怎么办,我已经在这个僵局中呆了很长时间了,现在我已经到了一个不做这项工作就无法前进的地步。你是编写了现有的表模型,还是提供了它?它目前不起作用的原因是,JTable的getModel方法返回一个
TableModel
,它没有
insertRow
函数。你能粘贴你最初设置表格模型的地方吗?我会将它添加到原始帖子中。在这种情况下,你必须使用
getTableModel
并将返回值强制转换为
DefaultTableModel
,然后你应该能够根据需要添加行:)现在,即使将表格模型设置为DefaultTableModel,它也不会显示错误,但是,当我按下按钮时,没有添加任何行,也没有任何红色文本。我在将tablemodel添加到已存在的表时遇到问题,所以我一直在尝试这种方法。你能给我举个例子吗?编辑:我只需要知道下一步该怎么办,我已经在这个僵局中呆了很长时间了,现在我已经到了一个不做这项工作就无法前进的地步。你是编写了现有的表模型,还是提供了它?它目前不起作用的原因是,JTable的getModel方法返回一个
TableModel
,它没有
insertRow
函数。你能粘贴你最初设置表格模型的地方吗?我会将它添加到原始帖子中。在这种情况下,你必须使用
getTableModel
并将返回值强制转换为
DefaultTableModel
,然后你应该能够根据需要添加行:)现在,即使将表格模型设置为DefaultTableModel,它也不会显示错误,但是,当我按下按钮时,没有添加任何行,也没有任何红色文本。这是我当前的for cycle
for(int increm=0;increm@TheRevguin如果您想在末尾插入一行,请使用
addRow
而不是
insertRow
。此外,我还没有尝试过,但我可以想象使用
getRowCount
for
insertRow
将导致一个
ArrayIndexOutOfBounds
异常,因为该行不存在。您是否得到此异常n?@TheRevguin,您是否验证代码是否正确执行?如果您有GUI中显示的表的引用,则代码将正常工作。可能您的表引用错误。这是我当前的for cycle
for(int increm=0;increm@TheRevguin如果您想在末尾插入一行,请使用
addRow
而不是
insertRow
。此外,我还没有尝试过,但我可以想象使用
getRowCount
for
insertRow
将导致一个
ArrayIndexOutOfBounds
异常,因为该行不存在。您是否得到此异常n?@TheRevguin,您是否验证代码是否正确执行?如果您有GUI中显示的表的引用,则代码将正常工作。可能您的表引用错误。