我将为我的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());
}
}
...
我想知道它是否有可能工作,以便如果我更改组合框的值,它也将更改列表内的组合框的值,并且还可以通过以下方式获取组合框的值从列表中调用它。
答案 0 :(得分:0)
将您的列表初始化为 List 的实现。 列表只是一个界面。
还要确保您使用的列表导入正确。
import java.util.ArrayList;
import java.util.List;
您可以使用ArrayList <>();例如:
public List<ComboBox<String>> boxes = new ArrayList<>();