0

我在元素 SubjectListItem 上创建了 contextMenu,它像这样扩展了 HBox:

@FXML
private void onContextMenuRequested(ContextMenuEvent e) {
    contextMenu.show(
            SubjectListItem.super.getParent(),
            e.getScreenX(),
            e.getScreenY()
    );
}

变量 contextMenu 是 SubjectListItem 的私有 final 字段,它被设置为:

private class SubjectCell extends ListCell<Subject> {
    @Override
    public void updateItem(final Subject subject, final boolean empty) {
        super.updateItem(subject, empty);
        if (subject != null) {
            setGraphic(new SubjectListItem(subject, SubjectListView.this.markService, eventBus, faceAnalysisService));
        } else {
            setGraphic(null);
        }
    }
}

在 ListView 上由 list.setCellFactory(c -> new SubjectCell());

问题是每隔一次(第二次,第四次......)边界(右侧和底部被切割: 裁切 ContextMenu 的边框

但是第一次,第三次……没关系。这是javafx的错误还是我做错了什么?

4

1 回答 1

0

好的,我找到了修复它的方法。行前:

contextMenu.show(...);

我必须添加一行:

contextMenu.hide();
于 2016-05-24T08:20:52.863 回答