парадигма раньше.

я естьListView что я работаю, чтобы добавитьContextMenu к. у меня естьContextMenu работает найти, но есть другая проблема.

мойsetCellFactory код, используемый для настройки контекстных меню:

lvAppetites.setCellFactory(lv -> {
    ListCell<Appetite> cell = new ListCell<>();
    ContextMenu contextMenu = new ContextMenu();

    MenuItem editAppetiteMenu = new MenuItem();

    editAppetiteMenu.textProperty().bind(Bindings.format("Edit ..."));
    editAppetiteMenu.setOnAction(event -> {
        // Code to load the editor window
        editAppetite(cell.getItem());
    });
    contextMenu.getItems().add(editAppetiteMenu);

    MenuItem deleteAppetiteMenu = new MenuItem();
    deleteAppetiteMenu.textProperty().bind(Bindings.format("Delete ..."));
    deleteAppetiteMenu.setOnAction(event -> {
        // Code to delete the appetite
    });
    contextMenu.getItems().add(deleteAppetiteMenu);

    contextMenu.getItems().add(new SeparatorMenuItem());

    MenuItem addAppetiteMenu = new MenuItem();
    addAppetiteMenu.textProperty().bind(Bindings.format("Add New ..."));
    addAppetiteMenu.setOnAction(event -> {
        // Code to delete the appetite
    });
    contextMenu.getItems().add(addAppetiteMenu);

    cell.textProperty().bind(cell.itemProperty().asString());

    // If nothing selected, remove the context menu
    cell.emptyProperty().addListener((obs, wasEmpty, isNowEmpty) -> {
        if (isNowEmpty) {
            cell.setContextMenu(null);
        } else {
            cell.setContextMenu(contextMenu);
        }
    });
    return cell;
});

мойListView доступен для поиска черезTextField со слушателем; слушатель фильтрует элементы вListView как пользователь печатает.

Проблема в том, что, поскольку список фильтруется, теперь отображаются все пустые ячейки.null.

От прочтения другоговопросЯ уверен, чтоListView все еще отображает графику для удаленных ячеек. Я знаю, как справиться с этим в ListView путем переопределенияupdateItem метод, но как бы я справиться с этим изнутриsetCellFactory метод вместо?

Это вообще возможно, или мне нужно будет изменить весь мойListView?

Спасибо, как всегда, за всю вашу помощь!

Ответы на вопрос(0)

Ваш ответ на вопрос