Заполнение метода просмотра списка не работает - PullRequest
0 голосов
/ 09 марта 2020

Я пытаюсь заполнить свой ListView наблюдаемым списком, но код, кажется, даже не запускается.

У меня есть класс Controller, который контролирует все продукты питания

package sample;

import com.sun.javafx.collections.ObservableListWrapper;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;

import java.util.ArrayList;

public class FoodDrinkController {
    private ArrayList<FoodDrink> fullList = new ArrayList<>();

    //constructor with some stuff in it
    public FoodDrinkController(){
        FoodDrink cola = new FoodDrink("Coca Cola", 2.99, Global.itemtype.DRINK);
        FoodDrink pepsi = new FoodDrink("Pepsi", 2.99, Global.itemtype.DRINK);
        FoodDrink burger = new FoodDrink("burger", 7.99, Global.itemtype.MAIN);

        fullList.add(cola);
        fullList.add(pepsi);
        fullList.add(burger);
    }

    public ObservableList<FoodDrink> filterByType(Global.itemtype itemtype){
        ArrayList<FoodDrink> subList = new ArrayList<>();
        for (FoodDrink listItem : fullList){
            if(listItem.getItemtype().equals(itemtype)){
                subList.add(listItem);
            }
        }
        return FXCollections.observableArrayList(subList);
    }

    //plain old main method
    public static void main(String[] args) {
        //SelectDrinkController fbtd = new SelectDrinkController();
        //System.out.println(fbtd.filterByType("DRINK"));

        FoodDrinkController fdc = new FoodDrinkController();
        System.out.println(fdc.filterByType(Global.itemtype.DRINK));
    }
}

и контроллер для gui

package sample;

import javafx.application.Application;
import javafx.beans.Observable;
import javafx.collections.FXCollections;
import javafx.collections.ObservableArray;
import javafx.collections.ObservableList;
import javafx.fxml.FXML;
import javafx.scene.control.ListView;
import javafx.stage.Stage;

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

public class SelectDrinkControllerGUI extends Application {

    private FoodDrinkController fdc = new FoodDrinkController();

    @FXML
    ListView lvDrinks = new ListView();

    @Override
    public void start(Stage stage) throws Exception {
        System.out.println("Hello");
    }

    public void initialize(URL location, ResourceBundle resources) {

        ObservableList items = fdc.filterByType(Global.itemtype.DRINK);
        System.out.println(items);

        lvDrinks.getItems().addAll(items);
    }
}

Так что, когда я запускаю программу, она просто показывает пустой ListView вместо элементов DRINK, которые я вставил в контроллер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...