Javafx 2 JavaFX文本区域隐藏滚动条

Javafx 2 JavaFX文本区域隐藏滚动条,javafx-2,Javafx 2,我有一个TextArea(),想隐藏垂直/水平滚动条。我看到控件似乎有一个内置的滚动窗格,可以根据需要显示 TextArea numberPane = new TextArea(); numberPane.setEditable(false); numberPane.setMaxWidth( 75 ); // Set the characteristics of our line number pane numberPane.setId( "line-

我有一个TextArea(),想隐藏垂直/水平滚动条。我看到控件似乎有一个内置的滚动窗格,可以根据需要显示

    TextArea numberPane = new TextArea();

    numberPane.setEditable(false);
    numberPane.setMaxWidth( 75 );

    // Set the characteristics of our line number pane
    numberPane.setId( "line-number-pane" );
在我的CSS文件中,我有以下设置

    #line-number-pane
    {
        -fx-text-fill: white;
        -fx-background-color: black;
        -fx-font: 12px "Courier New";
        -fx-font-family: "Courier New";
        -fx-font-weight: bold;
    }

    #line-number-pane .scroll-pane
    {
        -fx-hbar-policy : never;
        -fx-vbar-policy : never;
    }
正如所料,文本区域字体/颜色/大小工作正常。但是,滚动窗格策略似乎不起作用

我应该能够通过CSS文件隐藏滚动条,还是有一些代码可以做到这一点


谢谢。

我观察了TextAreaSkin类的代码,发现 void layoutChildren(x,y,w,h)方法,该方法被称为“在场景布局的布局过程中”,并且事实上,每次控件出现问题时,都包含一个代码,该代码根据控件的当前状态在AS_NEEDED和NEVER之间更改hbarPolicy和vbarPolicy

所以,看起来,没有机会用css来做一些事情

尽量使滚动条不可见。但是,正如我所看到的ScrollPaneSkin代码,滚动条只创建了一次,但是它们的可见性状态似乎在控件工作期间发生了变化,因此,不要使用setVisible(false)(这将在最近的布局中被忽略),而是尝试使用setOpacity(0.0)。(我不确定,它会起作用,但值得一试)


另外,您可以使用Parent.getChildrenUnmodifiable()方法在控件结构中应用滚动条的递归搜索,并手动使其不可见,而不是使用CSS。

我观察了TextAreaSkin类的代码,发现 void layoutChildren(x,y,w,h)方法,该方法被称为“在场景布局的布局过程中”,并且事实上,每次控件出现问题时,都包含一个代码,该代码根据控件的当前状态在AS_NEEDED和NEVER之间更改hbarPolicy和vbarPolicy

所以,看起来,没有机会用css来做一些事情

尽量使滚动条不可见。但是,正如我所看到的ScrollPaneSkin代码,滚动条只创建了一次,但是它们的可见性状态似乎在控件工作期间发生了变化,因此,不要使用setVisible(false)(这将在最近的布局中被忽略),而是尝试使用setOpacity(0.0)。(我不确定,它会起作用,但值得一试)

此外,您可以使用Parent.getChildrenUnmodifiable()方法在控件结构中应用滚动条的递归搜索,而不是使用CSS,并手动使其不可见。

来源:

移除水平滚动条 移除垂直滚动条 CSS 发件人:

移除水平滚动条 移除垂直滚动条 CSS
我只是非常简单地使用样式表:

CSS
不需要所有那些古怪的代码。

我只是简单地使用了样式表:

CSS
不需要所有那些古怪的代码。

在“ta.lookup”中的“ta”是什么?这已经有很长时间没有得到回答了,但我认为它应该是
textArea
(或者更具体地说,
ta
是对
textArea
的引用)。textArea实例还是类?因为我将其替换为引用实例,得到了NullExceptionError。所以什么也没找到。“ta.lookup”中的“ta”是什么?这已经有很长时间没有得到回答了,但我认为它应该是
textArea
(或者更具体地说,
ta
是对
textArea
)的引用。textArea实例还是类?因为我将其替换为引用实例,得到了NullExceptionError。所以什么也没找到。“ta.lookup”中的“ta”是什么?这已经有很长时间没有得到回答了,但我认为它应该是
textArea
(或者更具体地说,
ta
是对
textArea
)的引用。textArea实例还是类?因为我将其替换为引用实例,得到了NullExceptionError。所以没有发现任何东西。它适用于JavaFX11。它适用于JavaFX11。它适用于JavaFX11。
textArea.setWrapText(true);
ScrollBar scrollBarv = (ScrollBar)ta.lookup(".scroll-bar:vertical");
scrollBarv.setDisable(true);
.text-area .scroll-bar:vertical:disabled {
    -fx-opacity: 0;
}
.text-area .scroll-bar:vertical {
    -fx-pref-width: 1;
    -fx-opacity: 0;
}
.text-area .scroll-bar:horizontal {
    -fx-pref-height: 1;
    -fx-opacity: 0;
}