Я пытаюсь создать программу JavaFX для управления производственной линией. Я работаю с базой данных, чтобы пользователь мог заполнить базу данных TextField
и ChoiceBox
. У меня проблемы с заполнением ChoiceBox
из созданного мною класса Enum.
Ожидается, что мой ChoiceBox
заполнен элементами из моего Enum
класса, однако ChoiceBox
оставаясь пустымКод компилируется.
Прежде чем вы отправите меня на эту ссылку , я попытался воспользоваться советом в этом обсуждении, но я не могу обернуть его вокруг. Это обсуждение не помогает, потому что я не уверен, где они пытаются заполнить их ComboBox
. Кроме того, cbxStatus.getItems().setAll(Status.values());
не работает для меня (возможно, я применяю его неправильно).
Мой класс Enum:
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;
}
}
Мой класс контроллера:
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();
.