У меня есть программа JavaFx, которая заполняет tableview значениями. В таблице должно отображаться только 6 столбцов, а остальные должны быть видны при прокрутке.
Но полоса прокрутки не будет двигаться при использовании мыши / клавиатуры. Горизонтальная полоса прокрутки не перемещается ни мышью, ни клавишами со стрелками на клавиатуре. Вертикальная прокрутка по крайней мере перемещается только с помощью клавиш со стрелками на клавиатуре.
Я пытался
Table.scrollTo(7);
Он просто прокручивается вниз, а не по горизонтали.
Загрузите снимок экрана с изображением здесь.
.





Используйте Table.scrollToColumnIndex(7);.
Что касается перемещения по таблице с помощью клавиш со стрелками. Вам нужно включить выбор ячейки, чтобы вы могли выбирать отдельные ячейки. В противном случае вы всегда выбираете только полные строки, что не заставляет TableView прокручиваться по горизонтали:
Table.getSelectionModel().setCellSelectionEnabled(true);
У меня тоже была такая же проблема, но я решил ее хитрым трюком.
tableView.addEventFilter(ScrollEvent.SCROLL, (ScrollEvent event) -> {
ScrollBar hBar = getScrollBar(tableView, Orientation.HORIZONTAL);
if (event.getDeltaY() > 0 && event.isShiftDown()) {
if (hBar.getValue() != hBar.getMin()) {
hBar.setValue(hBar.getValue() - 20);
event.consume();
} else {
event.consume();
}
} else if (event.isShiftDown()) {
if (hBar.getValue() != hBar.getMax()) {
hBar.setValue(hBar.getValue() + 20);
event.consume();
} else {
event.consume();
}
}
});
Это будет работать и прокручивать по горизонтали с помощью shift_key + mouse_scroll. Надеюсь, это сработает и для вас .. :)
Ничего себе, это сработало, но не могли бы вы мне помочь, как это сделать с помощью колеса мыши или перетаскивая полосу прокрутки с помощью мыши?