Java Can';即使使用getModel,也不要向jTable添加行
我已经在这个网站上搜索了好几个小时了,关于如何将我的按钮放到一个已经存在的表的a行,这个表是通过简单地单击swing控件创建的,然后添加一个表并通过属性更改字段 该表的变量名为“table” 当面对这一行代码时: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
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 cyclefor(int increm=0;increm@TheRevguin如果您想在末尾插入一行,请使用addRow
而不是insertRow
。此外,我还没有尝试过,但我可以想象使用getRowCount
forinsertRow
将导致一个ArrayIndexOutOfBounds
异常,因为该行不存在。您是否得到此异常n?@TheRevguin,您是否验证代码是否正确执行?如果您有GUI中显示的表的引用,则代码将正常工作。可能您的表引用错误。这是我当前的for cyclefor(int increm=0;increm@TheRevguin如果您想在末尾插入一行,请使用addRow
而不是insertRow
。此外,我还没有尝试过,但我可以想象使用getRowCount
forinsertRow
将导致一个ArrayIndexOutOfBounds
异常,因为该行不存在。您是否得到此异常n?@TheRevguin,您是否验证代码是否正确执行?如果您有GUI中显示的表的引用,则代码将正常工作。可能您的表引用错误。