我想让TextArea只读,但是我设置TextArea的文本太长了,需要滚动。设置文本时会出现滚动条,但滚动条不起作用。带有滚动条的只读文本区域[JavaFx]
我使用的是.fxml文件来保存我用下面的代码文本区:
<TextArea fx:id="consultantScheduleTextArea" editable="false" focusTraversable="false" prefHeight="454.0" prefWidth="597.0" visible="false" />
我的理解是,这是做它,所以我不能专注于它(如标签的容器或点击进入它),它不可编辑(所以我不能通过键入来改变文本),并且它不可见。我已经尝试将focusTraversable设置为true,而不会改变行为。
在我的控制器中,当单击按钮时将可见性设置为true,然后从db获取一些字符串数据,并以某种方式对其进行格式化,然后执行此操作来设置TextArea的内容。
myTextArea.appendText(myString);
结果我的textarea里充满了我在myString的内容,滚动条自动创建的,因为该字符串实际上是很多行(可以说300线),但我又不能滚动它。
任何帮助?
编辑:我没有提到,这个TextArea被包裹在一个包裹在一个网格窗格中的堆栈窗格中。我根本不认为这些问题,但以防万一。这个层次结构是因为它是我完整应用程序的一部分,而这只是其中一个GUI的一个组件。
我刚刚重新创建了你说的话,我没有问题。确保你使用的是最新的jdk。 – Sedrick
我刚刚用一个很长的字符串试了一下。它需要一段时间来加载,但一旦加载滚动条工作。 – Sedrick
试试这个以确保你的gui没有锁定。只是一个疯狂的猜测。 Platform.runLater(() - > {consultantScheduleTextArea.appendText(text.toString());});并尽可能使用StringBuilder。 – Sedrick