设置JavaFX TextArea的选项卡间距/大小可视化

时间:2014-12-21 00:24:22

标签: javafx javafx-8

我正在使用JavaFX 8,特别是TextArea控件。在该控件中,我可以输入包括“制表符”字符的自由格式文本。当我输入选项卡时,数据以8个字符为单位。例如。在下文中,!字符是我输入选项卡的位置:

1234567890123456789012345678901234567890
!       Data here
ABC!    Data here
!!              Data Here

我的谜题是如何更改视觉的标签间距/大小调整,以便标签大小不是8个字符,而只是4个字符。

为了进一步说明,这是一个实际的屏幕截图,显示了我的文本区域中的标签:

enter image description here

我希望将数据保留为包含制表符的字符,而不是用空格替换制表符。

此Stack Exchange问​​题不适用,因为它专门讨论将标签更改为空格:

JavaFX TextArea: how to set tabulation width

2 个答案:

答案 0 :(得分:6)

我决定浏览JavaFX的源代码以查看是否能找到答案,虽然我不是检查如此大量代码的专家,但我似乎发现答案是选项卡大小被硬编码为8个字符!!

我找到了名为:

的源文件

com.sun.javafx.text.PrismTextLayout.java

有一个名为getTabAdvance的方法,它返回一个固定值“8”。请参阅以下内容:

enter image description here

这对我来说是最令人失望的,但事实就是如此。

答案 1 :(得分:0)

请注意,在JavaFX 14中实现JDK-8130738之后,您现在可以将制表符的进阶更改为'spaceAdvance'的任意倍数。 TextTextFlow现在具有tabSize属性,并且CSS支持-fx-tab-size