删除JavaFX TreeView滚动窗格

时间:2014-04-28 18:02:47

标签: treeview javafx scrollpane

我需要在更大的滚动窗格内部使用JavaFX 2.2 TreeView控件,该滚动窗口中有几个不属于Treeview的其他元素。问题是TreeView有自己的内置滚动窗格。有没有人有一个关闭内置滚动窗格的方法的例子,以便TreeView的增长与其中包含的项目一样大?

3 个答案:

答案 0 :(得分:0)

这是一个很好的问题。

我认为您需要创建自己的TableViewSkin,而不是VirtualContainerBase。 VirtualContainerBase管理VirtualFlow,如果您希望显示整个TreeView,则不需要它。我相信这是在JavaFX 2/8 API中以一般方式完成的一个相当棘手的事情,并且目前没有任何示例解决方案或关于如何实现此目的的进一步建议。

JavaFX问题跟踪器中存在此类功能的现有功能请求:

  • RT-26631“允许在Table,List,Tree和TreeTable等控件上禁用滚动”。

目前,该功能尚未安排在将来的版本中实施。

答案 1 :(得分:0)

虽然目前无法删除滚动条,但可以使用CSS隐藏它们。

.your-selector *.column-header-background *.show-hide-columns-button,
.your-selector *.scroll-bar:vertical *.increment-button,
.your-selector *.scroll-bar:vertical *.decrement-button,
.your-selector *.scroll-bar:vertical *.increment-arrow, 
.your-selector *.scroll-bar:vertical *.decrement-arrow {
    -fx-background-color: null;
    -fx-background-radius: 0;
    -fx-background-insets: 0;
    -fx-padding: 0;
    -fx-shape: null;
}

.your-selector *.scroll-bar:horizontal,
.your-selector *.scroll-bar:horizontal *.track,
.your-selector *.scroll-bar:horizontal *.track-background,
.your-selector *.scroll-bar:horizontal *.thumb,
.your-selector *.scroll-bar:horizontal *.increment-button,
.your-selector *.scroll-bar:horizontal *.decrement-button,
.your-selector *.scroll-bar:horizontal *.increment-arrow, 
.your-selector *.scroll-bar:horizontal *.decrement-arrow {
	-fx-base: transparent;
	-fx-background-color: white;
}

答案 2 :(得分:0)

在我的应用程序中,我只想删除水平滚动条。 robross0606的答案对我来说非常有用,但事实证明,在我的情况下,仅需要以下几点:

.scroll-bar:horizontal,
.scroll-bar:horizontal *.increment-button,
.scroll-bar:horizontal *.decrement-button,
.scroll-bar:horizontal *.increment-arrow, 
.scroll-bar:horizontal *.decrement-arrow {
    -fx-padding: 0;
}