JavaFX TableView无法水平滚动

时间:2018-07-02 08:08:44

标签: javafx horizontal-scrolling

我有一个JavaFx程序,该程序用值填充tableview。该表应仅显示6列,其余部分在滚动时应可见。

但是使用鼠标/键盘时滚动条不会移动。使用鼠标或键盘上的箭头键,水平滚动条将不会移动。垂直滚动至少通过键盘上的箭头键移动。

我尝试了

Table.scrollTo(7);

它只是向下滚动而不是水平滚动。 在此处上传图片的屏幕截图。 TableView

2 个答案:

答案 0 :(得分:0)

使用Table.scrollToColumnIndex(7);

关于使用箭头键在表格中移动。您需要enable cell selection才能选择单个单元格。否则,您只能选择不会使TableView水平滚动的完整行:

Table.getSelectionModel().setCellSelectionEnabled(true);

答案 1 :(得分:0)

我也遇到了同样的问题,但是我通过巧妙的技巧解决了这个问题

 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水平滚动。 希望这对您也有用..:)