Я не могу найти способ программно получить размер ячейки, зная индексы строк и столбцов в javafx.scene.control.TableView.
Как найти TableCell или TableColumn по индексу строки и столбца?
Я много ищу, но ничего не нашел.
Спасибо, Паоло.
Я не могу найти способ программно получить размер ячейки, зная индексы строк и столбцов в javafx.scene.control.TableView.
Как найти TableCell или TableColumn по индексу строки и столбца?
Я много ищу, но ничего не нашел.
Спасибо, Паоло.
Я не нашел четкого способа сделать это, но для целей тестирования должно работать следующее:
Метод обхода:
// run it next way: traverse(table, -1, -1);
public void traverse(Node node, int row, int column) {
//System.out.println(node.getClass()); // uncomment to see how traverse works
// once we found a TableRow all children are from that row, so we save it's number
int newRow = (node instanceof TableRow) ? ((TableRow) node).getIndex() : row;
// same for the column, although there would be only one child
int newColumn = (node instanceof TableCell) ? ((TableCell)node).getIndex() : column;
// in my demo table cells are text, change to your implementation class for custom cells
if (node.getClass().getName().contains("LabeledText")) {
String text = ((com.sun.javafx.scene.control.skin.LabeledText) node).getText();
if (!text.isEmpty()) { // this check is just to filter empty rows
System.out.println("### " + text);
System.out.println("# Row: " + row + " Column: " + column);
System.out.println("# Height: " + node.getBoundsInParent().getHeight());
}
}
// traverse code
if (node instanceof Parent) {
Parent parent = (Parent) node;
parent.getChildrenUnmodifiable().forEach(n -> traverse(n, newRow, newColumn));
}
}
Полный пример: https://pastebin.com/A7cTvq4i
TableColumn
заtable.getColumns().get(index)
. Невозможно получитьTableCell
по индексу строки и столбца (ячейка в любом случае не будет иметь одинаковый индекс строки). Зачем нужна высота ячейки? В любом случае таблица будет управлять расположением ячеек. - person James_D   schedule 08.07.2017updateIndex(...)
, чтобы установить класс стиля (или идентификатор CSS), который использовал индекс. Тогда воспользуйтесь поиском. (Если вы используете TestFX, среда тестирования все равно выполнит поиск за вас.) Вам также необходимо убедиться, что существует ячейка с заданным индексом строки, конечно. - person James_D   schedule 08.07.2017