Как получить индексы видимых строк в таблице в Javafx 9? В Javafx 8 я могу сделать следующее: < /p>
// --- The offending imports in Java 9
// import com.sun.javafx.scene.control.skin.TableViewSkin;
// import com.sun.javafx.scene.control.skin.VirtualFlow;
/**
* This is a total hack. We need it as scrollTo jumps the selected
* row to the top of the table. Jarring if the row is already
* visible. As a workaround, we only scroll if the row isn't already
* visible
*
* @return A 2 element ray with the start and end index of visible rows
*/
public int[] getVisibleRows() {
TableView tableView = getTableView();
TableViewSkin skin = (TableViewSkin) tableView.getSkin();
if (skin == null) return new int[] {0, 0};
VirtualFlow flow = (VirtualFlow) skin.getChildren().get(1);
int idxFirst;
int idxLast;
if (flow != null &&
flow.getFirstVisibleCellWithinViewPort() != null &&
flow.getLastVisibleCellWithinViewPort() != null) {
idxFirst = flow.getFirstVisibleCellWithinViewPort().getIndex();
if (idxFirst > tableView.getItems().size()) {
idxFirst = tableView.getItems().size() - 1;
}
idxLast = flow.getLastVisibleCellWithinViewPort().getIndex();
if (idxLast > tableView.getItems().size()) {
idxLast = tableView.getItems().size() - 1;
}
}
else {
idxFirst = 0;
idxLast = 0;
}
return new int[]{idxFirst, idxLast};
}
< /code>
В Java 9, как часть модуляризации, команда JDK скрывает API, которые не должны были быть публичными (например, все пакеты, которые начинаются с 'com.sun'), если я попытаюсь скомпилировать это в Java 9, я получаю ошибки: < /p>
[...] cannot find symbol
[ERROR] symbol: class TableViewSkin
[ERROR] location: package com.sun.javafx.scene.control.skin
[...] cannot find symbol
[ERROR] symbol: class VirtualFlow
[ERROR] location: package com.sun.javafx.scene.control.skin
< /code>
Есть ли официальный способ получить видимые строки в таблице? Любые идеи на другом, лучшем обходном пути?TableViewExt tableViewExt = new TableViewExt(tableView);
public int[] getVisibleRows() {
return new int[]{ tableViewExt.getFirstVisibleIndex(),
tableViewExt.getLastVisibleIndex()};
}
< /code>
code for tableviewext < /p>
Подробнее здесь: https://stackoverflow.com/questions/464 ... n-javafx-9
Как найти показатели видимых строк в таблице в Javafx 9 ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Выбор всех видимых строк после поиска, используя кнопку «SELECTALL» в Table Data-Table
Anonymous » » в форуме Jquery - 0 Ответы
- 12 Просмотры
-
Последнее сообщение Anonymous
-