Как вы заполняете просмотр списка, используя наблюдаемый список в Java - PullRequest
0 голосов
/ 20 марта 2019

Итак, я использовал конструктор сцены для создания двух списков, и мне нужно заполнить первый содержимым наблюдаемого списка, который я создал в классе ItemList.Однако компоненты FXML в классе не отображаются как связанные, и когда я запускаю код, представление списка пустое.

Вот мой класс:

import javafx.collections.ObservableList;
import javafx.fxml.Initializable;


import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.*;

import java.net.URL;
import java.util.ResourceBundle;

public class ItemList {
    @FXML
    ListView<String> itemsList;
    ListView<String> orderList;
    @FXML
    public ObservableList<String> listOfItems;
    public ObservableList<String> listOfOrder;


public void initialize() {
    listOfItems = FXCollections.observableArrayList();
    listOfOrder = FXCollections.observableArrayList();
    listOfItems.add("Nachos (£4)");
    listOfItems.add("Popcorn Sweet (£3)");
    listOfItems.add("Popcorn Salty (£3)");
    listOfItems.add("Regular Coke (£1)");
    listOfItems.add("Regular Tango Ice Blast (£4.50)");
    itemsList.setItems(listOfItems);
    orderList.setItems(listOfOrder);
}

public void addItem(ActionEvent actionEvent) {
    int i = itemsList.getSelectionModel().getSelectedIndex();
    if (i != -1) {
        listOfOrder.add(itemsList.getSelectionModel().getSelectedItem());
    } else {
        Alert alert = new Alert(Alert.AlertType.WARNING, "No Item Selected", ButtonType.OK);
        alert.showAndWait();
    }
}

public void removeItem(ActionEvent actionEvent) {
    int i = orderList.getSelectionModel().getSelectedIndex();
    if (i != -1) {
        listOfOrder.remove(i);
    } else {
        Alert alert = new Alert(Alert.AlertType.WARNING, "No Item Selected", ButtonType.OK);
        alert.showAndWait();
    }
}

}

Часть моего контроллера:

public ListView itemsList;
public ListView orderList;

@FXML
private void handleButtonAction(MouseEvent event) {
    if (event.getTarget() == btnBookings) {
        pageBookings.toFront();
        new ItemList().initialize();
       itemsList.setItems(new ItemList().listOfItems);
    }
}
...