簡體   English   中英

如何用單獨的枚舉 Class 填充 JavaFX ChoiceBox?

[英]How to fill JavaFX ChoiceBox with seprate Enum Class?

我正在嘗試創建一個 JavaFX 程序來管理生產線。 我正在使用數據庫,以便用戶可以使用TextFieldChoiceBox填充數據庫。 我無法從我創建的枚舉 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM