【发布时间】:2018-12-10 09:53:49
【问题描述】:
我有一个用值填充 tableview 的 JavaFx 程序。该表应仅显示 6 列,其余的列应在滚动时可见。
但使用鼠标/键盘时滚动条不会移动。水平滚动条不会随鼠标或键盘箭头键移动。垂直滚动至少只能用键盘箭头键移动。
我试过了
Table.scrollTo(7);
【问题讨论】:
标签: javafx horizontal-scrolling
我有一个用值填充 tableview 的 JavaFx 程序。该表应仅显示 6 列,其余的列应在滚动时可见。
但使用鼠标/键盘时滚动条不会移动。水平滚动条不会随鼠标或键盘箭头键移动。垂直滚动至少只能用键盘箭头键移动。
我试过了
Table.scrollTo(7);
【问题讨论】:
标签: javafx horizontal-scrolling
我也遇到了同样的问题,但我用聪明的技巧解决了这个问题
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 水平滚动。 希望这对你也有用.. :)
【讨论】:
使用Table.scrollToColumnIndex(7);。
至于用箭头键在表格中移动。您需要enable cell selection 才能选择单个单元格。否则,您只会选择不会使 TableView 水平滚动的完整行:
Table.getSelectionModel().setCellSelectionEnabled(true);
【讨论】: