Я пытаюсь добавить контекстное меню для каждой отдельной ячейки в столбце, которое активируется щелчком правой кнопкой мыши на ячейке. Элементы меню также зависят от выбранной ячейки.
Я бы подумал, что использование фабрики ячеек было бы лучшим способом, но я не могу понять, как это сделать.
Редактировать: это моя реализация для одного из моих столбцов. setText в updateItem () добавляет текст в мой столбец, но я хочу добавить его в качестве метки, как мне это сделать?
moColumn = new TableColumn<>("Maandag");
moColumn.setSortable(false);
moColumn.setCellValueFactory(new PropertyValueFactory<>("Mo"));
getColumns().add(moColumn);
moColumn.setCellFactory(new Callback<TableColumn<RowData, Label>, TableCell<RowData, Label>>() {
@Override
public TableCell<RowData, Label> call(TableColumn<RowData, Label> col) {
final TableCell<RowData, Label> cell = new TableCell<RowData, Label>() {
@Override
protected void updateItem(Label item, boolean empty) {
super.updateItem(item, empty);
if(empty){
setText(null);
} else {
setText(item.getText());
}
}
};
//cell.textProperty().bind(cell.getItem().textProperty());
cell.setOnMouseClicked(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent event) {
if(event.getButton() == MouseButton.SECONDARY){
ContextMenu contextMenu = new ContextMenu();
MenuItem menuItem = new MenuItem(cell.getText());
contextMenu.getItems().add(menuItem);
cell.setContextMenu(contextMenu);
}
}
});
return cell;
}
});
Редактировать: Как я могу щелкнуть правой кнопкой мыши по ячейке в табличном представлении в Javafx (fxml)?
Я нашел это, но ссылка на блог больше не работает ...