Ячейка Javafx не выбирается при нажатии кнопки - PullRequest
0 голосов
/ 05 апреля 2019

У меня есть собственный cellFactory и кнопка в каждой ячейке.При щелчке по любому другому узлу строка в списке выбирается, но она не выбирает строку при нажатии кнопки.

My cellFactory:

public class OrderListViewCell extends ListCell<Order> {
    @FXML
    private Pane container;

    @FXML
    private Button button;

    private FXMLLoader mLLoader;

    @Override
    protected void updateItem(Order order, boolean empty) {
        super.updateItem(order, empty);

        if(empty || order == null) {

            setText(null);
            setGraphic(null);

        } else {
            if (mLLoader == null) {
                mLLoader = new FXMLLoader(getClass().getResource("/FXML/order-cell.fxml"));
                mLLoader.setController(this);
                try {
                    mLLoader.load();
                } catch (IOException e) {
                    e.printStackTrace();
                }

            }
            setText(null);
            setGraphic(container);
        }

    }
}

1 Ответ

1 голос
/ 05 апреля 2019

Нажатие на элемент управления может не позволить выбрать ячейку списка по умолчанию.В этом случае вы должны обработать выбор вручную.Включите обработчик нажатой кнопки, чтобы выбрать базовую ячейку списка.что-то вроде ...

    try {
          mLLoader.load();
          button.setOnMouseClicked(e -> getListView().getSelectionModel().select(getItem()));
    }catch (IOException e) {
        e.printStackTrace();
   }

Помните, что вы НЕ получите выбранный стиль: focus: выбранный для listCell, так как кнопка будет иметь фокус.

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