【问题标题】:Populating jtable from array under a loop在循环下从数组填充jtable
【发布时间】:2012-10-29 15:06:31
【问题描述】:

在每个循环中,它从某个文件收集信息并将其内容存储在一个数组中。然后,该数组应在表上的每个循环中创建一个新行。我的问题是,它只创建 1 行。我该如何解决这个问题?

for (int i = 0; i < listOfFiles.length; i++) 
    {
        if (listOfFiles[i].isFile()) 
        {
            files = listOfFiles[i].getName();

            SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
            iCount = humanReadableByteCount(listOfFiles[i].length(), true);

            if (files.toLowerCase().endsWith(".mp3"))
            {
                //jTextArea1.append("File name: " + files + " | Last Modified: " + sdf.format(listOfFiles[i].lastModified()) + " | Lenght: " + iCount + "\n");

                Object rowData[] = { files, sdf.format(listOfFiles[i].lastModified()), iCount };
                Object columnNames[] = { "Name", "Last Modified", "Size" };
                DefaultTableModel model = new DefaultTableModel(columnNames, 0);
                model.addRow(rowData);
                jTable1.setModel(model);
            }
        }
    }

【问题讨论】:

    标签: java arrays swing loops


    【解决方案1】:

    在循环外创建模型。也将表模型设置在循环之外。

    在循环中唯一要做的就是将新行添加到模型中。

    【讨论】:

      【解决方案2】:

      每次循环循环时都会创建一个新模型。因此,每次您都有一个新的空模型,并在空模型中添加 1 行。

      应该是这样的:

      Object columnNames[] = { "Name", "Last Modified", "Size" };
      DefaultTableModel model = new DefaultTableModel(columnNames);
      jTable1.setModel(model);
      SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
      for (int i = 0; i < listOfFiles.length; i++) 
          {
              if (listOfFiles[i].isFile() && listOfFiles[i].getName().toLowerCase().endsWith(".mp3")) 
              {
                  files = listOfFiles[i].getName();
                  iCount = humanReadableByteCount(listOfFiles[i].length(), true);
                  model.addRow(new Object[]{ files, sdf.format(listOfFiles[i].lastModified()), iCount });
              }
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-10-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-09-11
        • 2021-04-21
        • 2012-04-16
        相关资源
        最近更新 更多