我是编程新手,似乎无法摆脱这种打嗝。我想有一个选项框,其中填充了选项并且立即存在。我已经尝试定义ObservableList然后创建一个ComboBox但是当我实际运行代码时它是空的。它出现后我不需要编辑它。这是我的代码:
ObservableList<String> options =
FXCollections.observableArrayList(
"Option 1",
"Option 2",
"Option 3"
);
@FXML
final ComboBox stores = new ComboBox(options);
@FXML
private Label label;
我使用带有FXid商店的Scene Builder在FXML文档中创建了组合框。
任何帮助将不胜感激! 提前谢谢。
答案 0 :(得分:0)
当您使用anotation装饰javafx组件时,不应启动它。只有这个没问题;
@FXML ComboBox stores;
在控制器类的initialize方法中。 添加此代码:
stores.setItems(options);
答案 1 :(得分:0)
- &gt;您的代码应该是这样的:
ObservableList<String> options =
FXCollections.observableArrayList(
"Option 1",
"Option 2",
"Option 3"
);
@FXML
final ComboBox stores ;
@FXML
private Label label;
请勿尝试初始化fxml组件,FXMLLoader
会为您执行此操作。您首先要调用FXMLLoader
以便初始化节点,然后这里有两个不同的解决方案关于你的实施:
解决方案1(您的班级实施
Initializable
(适用于example))
/**
* Called after the FXML layout is loaded.
*/
@Override
public void initialize(URL url, ResourceBundle rb) {
//Add the ObservableList to the ComboBox
stores.setItems(options);
}
解决方案2(在调用此方法时,在fxml控制器中添加方法
initialize()
你知道你的fxml组件已经初始化了)
/**
* Called after the FXML layout is loaded.
*/
@FXML
public void initialize(){
//Add the ObservableList to the ComboBox
stores.setItems(options);
}