【问题标题】:Loading text file data into JTextfield将文本文件数据加载到 JTextfield
【发布时间】:2016-10-02 23:48:16
【问题描述】:

为了完成这段代码,我已经搜索了两天的各种教程,但是它们都没有真正帮助我理解我的代码有什么问题的概念。

我正在尝试写入文本文件,然后将其读取到 Jtable 中。我正在使用数组。我的导师告诉我,我使用了太多列表 - 所以我尝试只使用一个“constructorList”,但现在它无法编译。

出现的错误是:

error: method readFile in class CQUPestGUI cannot be applied to given types;

        readFile();
required: ArrayList<String>
found: no arguments
reason: actual and formal argument lists differ in length
1 error

我试图纠正它似乎只会让事情变得更糟。

这是似乎与错误相关的代码部分。

 private void buttonLoadStoredContractsActionPerformed(java.awt.event.ActionEvent evt) {                                                          
        readFile();
}   

我已经跳过了一些部分,以免提供大量代码来阅读

protected void readFile(ArrayList<String> listContractors)
{
   BufferedReader reader = null;
   //ArrayList showContract = new ArrayList();

   try
   {
       reader = new BufferedReader(new FileReader("Pest.txt"));
       String nLine = reader.readLine();


       while (nLine != null)
       {
           listContractors.add(nLine);
           String [] rows = nLine.split("-");
           for (String s: rows)
           {
                System.out.println(s);
           }
           nLine = reader.readLine();
       }
   }
   catch (FileNotFoundException e)
   {
       e.printStackTrace();
   }
   catch (IOException e)
   {
        e.printStackTrace();
   }
   displayStoredContracts(listContractors);
}

protected void displayStoredContracts(ArrayList<String> listContractors)
{
    for (int i = 0; i < listContractors.size(); i++)
    {
        txtAreaSavedContracts.append((String) listContractors.get(i));


    }
}

如果有人确实想查看整个代码,这里是 pastebin -- full code。我使用 gui builder,因为我只是一个初学者并且有最后期限要满足 - 所以很多这将是混乱的。我只是在需要时才放上去。

【问题讨论】:

  • 您需要将承包商保存在 ArrayList 中吗?如果没有,则从 readFile 方法中取出 ArrayList listContractors 参数。如果确实需要保存它们,请考虑将 listContractors 设为类的私有成员并使用成员列表,而不是将参数传递给 readFile 方法。
  • “我已经尝试了好几天了,我真的很想放弃。”在问问题之前不要放弃!说到这一点:您已经描述了一个需求或规范,但没有提出任何问题。你有什么问题?

标签: java swing arraylist jtextfield


【解决方案1】:

很容易找到,你的方法签名说,方法protected void readFile(ArrayList&lt;String&gt; listContractors) 只接受String 类型的java.util.ArrayList。但是当你调用方法时,你不传递任何参数,你通过readFile();调用方法。您应该已经传递了一个 ArrayList 作为方法参数。

  1. 创建一个ArrayList&lt;String&gt; list= new ArrayList&lt;String&gt;();
  2. 添加一些元素:list.add("asd");(根据需要)
  3. 调用方法:readFile(list);

希望对你有帮助。

注意我不认为方法readFile 的定义是正确的。它不应该将 ArrayList&lt;String&gt; 作为形式参数。它必须在方法块内创建此ArrayList 的实例,并在方法边界内向其添加元素。

【讨论】:

  • 在方法之外初始化数组列表似乎已经解决了错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-29
  • 2013-07-19
  • 2019-09-17
  • 1970-01-01
  • 2013-05-24
相关资源
最近更新 更多