我已经在这个网站上搜索了好几个小时,关于如何让我的按钮与一个已经存在的表格成一行,这个表格通过简单地单击 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]});
}
}
有什么想法或建议吗?
编辑:表格模型所在的位置: 公共(public)类 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);
}
最佳答案
table.getModel().
该方法返回一个 TableModel。你看过 TableModel 接口(interface)的 API 了吗?它不包含 insertRow(...)
方法。
DefaultTableModel
具有 insertRow(...)
方法。因此,假设您的表使用的是 DefaultTableModel,代码将是:
DefaultTableModel model = (DefaultTableMode)table.getModel();
model.insertRow(...);
不要总是在一个语句中编写代码。将语句分解为多个语句,以便您准确了解语句的哪一部分导致了问题,并确保将变量分配给正确的类。
关于java - 即使使用 getModel 也无法向 jTable 添加行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26427531/