Я использую этот фрагмент кода для создания всплывающих подсказок для каждой ячейки tableView, которую я распространяю через фабрики ячеек:
private <T> void addFileTooltipToCells(TableColumn<FileTableBean,T> column) {
Callback<TableColumn<FileTableBean, T>, TableCell<FileTableBean,T>> existingCellFactory = column.getCellFactory();
column.setCellFactory(c -> {
TableCell<FileTableBean, T> cell = existingCellFactory.call(c);
Tooltip tooltip = new Tooltip();
tooltip.textProperty().bind(cell.itemProperty().asString());
tooltip.setShowDuration(Duration.seconds(30));
tooltip.setStyle("-fx-font-size: 12");
cell.setTooltip(tooltip);
return cell;
});
}
Проблема заключается в том, что иногда всплывающие подсказки могут содержать много данных и должны быть многопоточными.Отсюда я обнаружил, что нужно просто обернуть всплывающие подсказки и, возможно, установить
там, где это необходимо.Однако вышеприведенный фрагмент кода, тщательно скопированный и проверенный методом проб и ошибок, не нравится этой идее.Я попытался:
tooltip.textProperty().bind("<html>"+cell.itemProperty().asString()+"</html>");
tooltip.setText("<html>"+cell.itemProperty().asString()+"</html>");
Первый говорит в IDE: Несовместимая строка не может быть преобразована в ObservableValue Второй один генератор следующие всплывающие подсказки: "Привязка строки [недействителен]":)
И до того, как кто-то запускаетс обычным «сообщением об ошибке все сказано, прочитайте это», я знаю, что, возможно, есть простой ответ на этот вопрос, но, объединяя эти лямбды с концепцией связывания и клеточными фабриками, я просто должен сдаться и попытаться получитьнекоторые указания отсюда.