如何在Java中使用ComboBox数据填充ArrayList

时间:2019-03-21 17:32:32

标签: java javafx java-8 combobox

我试图弄清楚为什么我不断收到错误消息,指出不能从静态上下文中引用非静态变量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");
          }





      }

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

据我了解您的问题。为了从Java8 ComboBox中获得ArrayList,相当明智的使用API​​ ComboBox API getItems();已返回可观察列表。 ObservableList API

只需复制列表或使用提供的列表,任何更改都会影响基础列表。如果要复制列表,则需要阅读有关浅层和深层副本以及操作方法的信息。在互联网上为该指南提供指南。

您可以使用Java 7 NIO API

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

为您幸运,“可观察的列表”是可重复的!