We have a listview that listens to the selection made by a combobox. However, when trying to use that combobox to switch between the observable lists displayed by the listview, we get errors.
eclipse error: Local variable inventoryItems defined in an enclosing scope must be final or effectively final
eclipse error: Local variable inventoryPrices defined in an enclosing scope must be final or effectively final
public static void GUI(Stage primaryStage){
ComboBox itemList = new ComboBox(FXCollections.observableArrayList(
"Menu Items", "Drink Items", "Dessert Items","Gift Shop Items")
);
ListView<String> inventory = new ListView<String>();
ListView<String> inventoryP = new ListView<String>();
ObservableList<String> inventoryItems;
ObservableList<String> inventoryPrices;
// Listener for inventory. When item in inventory is selected, the corresponding price is also selected
itemList.setOnAction(e -> {
if (itemList.getSelectionModel().getSelectedItem().toString() == "Menu Items") {
inventoryItems =FXCollections.observableArrayList (Register.menuItemNames);
inventory.setItems(inventoryItems);
inventoryPrices =FXCollections.observableArrayList(Register.menuItemPrices);
inventoryP.setItems(inventoryPrices);
}
else if (itemList.getSelectionModel().getSelectedItem().toString() == "Drink Items") {
inventoryItems =FXCollections.observableArrayList (Register.drinkItemNames);
inventory.setItems(inventoryItems);
inventoryPrices =FXCollections.observableArrayList (Register.drinkItemPrices);
inventoryP.setItems(inventoryPrices);
}
});