我正在使用JavaFX 8,特别是TextArea控件。在该控件中,我可以输入包括“制表符”字符的自由格式文本。当我输入选项卡时,数据以8个字符为单位。例如。在下文中,!
字符是我输入选项卡的位置:
1234567890123456789012345678901234567890
! Data here
ABC! Data here
!! Data Here
我的谜题是如何更改视觉的标签间距/大小调整,以便标签大小不是8个字符,而只是4个字符。
为了进一步说明,这是一个实际的屏幕截图,显示了我的文本区域中的标签:
我希望将数据保留为包含制表符的字符,而不是用空格替换制表符。
此Stack Exchange问题不适用,因为它专门讨论将标签更改为空格:
答案 0 :(得分:6)
我决定浏览JavaFX的源代码以查看是否能找到答案,虽然我不是检查如此大量代码的专家,但我似乎发现答案是选项卡大小被硬编码为8个字符!!
我找到了名为:
的源文件 com.sun.javafx.text.PrismTextLayout.java
有一个名为getTabAdvance
的方法,它返回一个固定值“8”。请参阅以下内容:
这对我来说是最令人失望的,但事实就是如此。
答案 1 :(得分:0)
请注意,在JavaFX 14中实现JDK-8130738之后,您现在可以将制表符的进阶更改为'spaceAdvance'的任意倍数。 Text
和TextFlow
现在具有tabSize
属性,并且CSS支持-fx-tab-size