[英]How to fill JavaFX ChoiceBox with seprate Enum Class?
我正在嘗試創建一個 JavaFX 程序來管理生產線。 我正在使用數據庫,以便用戶可以使用TextField
和ChoiceBox
填充數據庫。 我無法從我創建的枚舉 class 填充ChoiceBox
。
預計我的ChoiceBox
會填充來自我的Enum
class 的項目,但是, ChoiceBox
保持空白。 代碼正在編譯。
在您向我推薦此鏈接之前,我已嘗試使用該討論中的建議,但我無法理解它。 該討論無濟於事,因為我不確定他們試圖在哪里填充他們的ComboBox
。 此外, cbxStatus.getItems().setAll(Status.values());
對我不起作用(我可能應用不正確)。
我的枚舉 class:
package sample;
public enum ItemType {
AUDIO("AU"),
VISUAL("VI"),
AUDIOMOBILE("AM"),
VISUALMOBILE("VM");
final String itemType;
ItemType(String itemType) {
this.itemType = itemType;
}
public String getItemType() {
return itemType;
}
}
我的 Controller class:
package sample;
import javafx.collections.FXCollections;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.ChoiceBox;
import javafx.scene.control.TextField;
import java.sql.SQLException;
public class Controller {
@FXML
private TextField productName;
@FXML
private TextField productManufacturer;
@FXML
private ChoiceBox<ItemType> itemType = new ChoiceBox<>();
private DatabaseManager databaseManager = new DatabaseManager();
public Controller() throws SQLException {
}
@FXML
public void initialize() {
itemType.getItems().setAll(ItemType.values());
}
public void addProduct() {
String name = productName.getText();
String manufacturer = productManufacturer.getText();
String type = itemType.toString();
databaseManager.insert(type, manufacturer, name);
System.out.println("Button Pressed");
}
public void recordProduction(ActionEvent actionEvent) {
System.out.println("Button Pressed");
}
}
最后,一旦選擇ChoiceBox
被填充,我需要捕獲用戶的選擇以輸入到我的數據庫中。 類似String type = itemType.toString();
.
我認為你錯過了明顯的東西並思考新事物, Enum
就是問題所在。
@FXML
private ChoiceBox<ItemType> itemType = new ChoiceBox<>();
您的控制器字段可以訪問一個 ChoiceBox 實例,而表單上的一個是不同的。 您從未將您的項目添加到您與之交互的選擇框中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.