如何制作组合框列表

时间:2019-05-06 23:21:38

标签: java javafx

我将为我的javafx项目使用几个类似的comboBoxes,所以我认为将它们添加到List()并从那里控制它们会更加简单,但是由于不共享引用和无法访问其中的itens。

我可以将组合框添加到列表中,但是即使尝试在设置项目之前和之后将其添加到列表中,我在尝试访问它的itens时也会出错;

...

public class Controller {
  @FXML
  public ComboBox<String> box1 = new ComboBox<>();
  public List<ComboBox<String>> boxes = new List<ComboBox<String>>(){};

  public void initialize(){
      boxes.add(box1);
      box1.getItems().setAll("a","b","c");
      /*The line below gives NullPointer Exception even when i add the items to the combobox and then add it to the List*/
      System.out.println(boxes.get(0).getItems());

  }

  public void boxOnClick(ActionEvent actionEvent) {
      System.out.println(boxes.get(0).getValue());
  }

}

...

我想知道它是否有可能工作,以便如果我更改组合框的值,它也将更改列表内的组合框的值,并且还可以通过以下方式获取组合框的值从列表中调用它。

1 个答案:

答案 0 :(得分:0)

将您的列表初始化为 List 的实现。 列表只是一个界面。

还要确保您使用的列表导入正确。

import java.util.ArrayList;
import java.util.List;

您可以使用ArrayList <>();例如:

 public List<ComboBox<String>> boxes = new ArrayList<>();