java - 设置 JavaFX TextArea 的制表符间距/大小可视化

标签 java 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

最佳答案

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

我找到了名为:

的源文件

com.sun.javafx.text.PrismTextLayout.java

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

enter image description here

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

关于java - 设置 JavaFX TextArea 的制表符间距/大小可视化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27585668/

相关文章:

java - Eclipse Oxygen 2 + Java 9 几分钟后显示错误

javafx - 使用上下文菜单从 JavaFX 表中删除一行

java - 无法将页面加载到 WebView

javafx 2 CheckBoxTableCell 在表格 View 中不起作用

java - 从另一个 View 单击按钮时打开 TabPane

java - 允许其他人为我的应用程序开发插件

java - 创建 grails 二进制插件会生成 jar 文件,其中包含所有带注释的 groovy 文件

java - 添加用于取消 ListView 中选择的监听器 (JavaFX)

java - 如何在 TextView 中显示 ArrayList 的值?

JavaFX 11 : IllegalAccessError when creating Label