【问题标题】:How to populate an ArrayList with ComboBox data in Java如何在 Java 中使用 ComboBox 数据填充 ArrayList
【发布时间】:2023-03-30 22:37:01
【问题描述】:

我试图弄清楚为什么我不断收到一个错误,指出不能从静态上下文中引用非静态变量destinationList。我知道该程序应该如何工作,所以我不需要帮助。我在想我可以把这些项目放在一个 ArrayList 中,但这不起作用。任何帮助将不胜感激:)

 public static void updateTextFile()
      {


          try (PrintWriter writer = new PrintWriter(new FileWriter(DESTINATIONS_FILE, true)))
          {

              writer.println(destinationList.getItems());


          }

               catch (IOException ioe)
          {
              System.out.println("Error when attempting to update file");
          }





      }

【问题讨论】:

  • 你的问题是不是和我看到的代码有关,文件写,代码?您想从组合框中取出项目并将它们放入 ArrayList 中吗?

标签: java javafx java-8 combobox


【解决方案1】:

从您的方法updateTextFile() 中删除static 关键字。或者,如果您想让它保持静态,请将 destinationList 本身设为 static

【讨论】:

  • 出于某种原因,我什至没有想过这样做。谢谢!
【解决方案2】:

错误几乎说明了一切。我猜destinationList不是静态的?尝试将列表作为参数传递给方法。

【讨论】:

    【解决方案3】:

    据我了解您的问题。为了从 Java8 ComboBox 中获取 ArrayList,非常严格的 API 明智 ComboBox API getItems();已经返回了一个 Obersvable 列表。 ObservableList API

    只需复制列表或使用提供的任何更改都会影响基础列表的列表。如果要复制列表,则需要阅读有关浅拷贝和深拷贝以及如何进行的信息。整个互联网上的指南。

    您可以使用Java 7 NIO API读写列表

    Files.write(Path path, Iterable<? extends CharSequence> lines, Charset cs, OpenOption... options)
    

    幸运的是 Observable 列表是可迭代的!

    【讨论】:

      猜你喜欢
      • 2014-09-18
      • 2018-10-13
      • 1970-01-01
      • 2014-03-27
      • 2017-03-20
      • 2013-05-11
      • 1970-01-01
      • 2014-08-30
      • 1970-01-01
      相关资源
      最近更新 更多