这是原始的fxml文件(为简洁起见省略了导入):
<BorderPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity"
minWidth="-Infinity" prefHeight="600.0" prefWidth="800.0"
xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1"
fx:id="pane"
fx:controller="com.github.parboiled1.grappa.debugger.mainwindow.MainWindowUi">
<top>
<MenuBar BorderPane.alignment="CENTER">
<Menu mnemonicParsing="false" text="File">
<!-- INJECTION -->
<MenuItem fx:id="loadInput" mnemonicParsing="false"
text="Load file" onAction="#loadFileEvent"/>
<MenuItem fx:id="parse" mnemonicParsing="false"
text="Parse" onAction="#parseEvent"/>
<MenuItem fx:id="closeButton" mnemonicParsing="false"
text="Close" onAction="#closeWindowEvent"/>
</Menu>
</MenuBar>
</top>
<center>
<SplitPane dividerPositions="0.5" prefHeight="160.0" prefWidth="200.0"
BorderPane.alignment="CENTER">
<SplitPane dividerPositions="0.5" orientation="VERTICAL">
<TreeView fx:id="traceTree" prefHeight="200.0"
prefWidth="200.0" style="font-family: monospace"/>
<TextArea fx:id="traceDetail" editable="false"
prefHeight="200.0" prefWidth="200.0"
style="-fx-font-family: monospace"/>
</SplitPane>
<!-- HERE -->
<TextArea fx:id="inputText" prefHeight="200.0" prefWidth="200.0"/>
</SplitPane>
</center>
</BorderPane>
我想对TextArea
fx:id
inputText
的{{1}}执行文本 part 的文本突出显示。为此,我建议使用TextFlow
代替TextArea
。 &#34; XML评论&#34;:HERE
。
我已经在&#34; XML评论&#34; INJECTION
,用{text}文件的内容填充inputText
的内容的方法。这适用于TextArea
。
现在,我做了什么:我刚刚用TextArea
替换了TextFlow
,修改了代码,而这就是它。没别了。
当我加载一个相当大的文本文件时,布局变得混乱。在加载之前,布局很好:
现在我尝试加载一个足够长的文本文件,使其不适合TextFlow
,并且......这就是我得到的:
使用TextArea
时没有这样的问题。后者将自动&#34;插入&#34; (如果这是正确的单词)垂直和水平滚动条,并且我的MenuBar
保持原样,非常感谢。
但是TextArea
不允许我只突出部分文字...因此我需要TextFlow
。
如何将TextFlow
表现为&#34;布局明智&#34;,作为TextArea
?
答案 0 :(得分:7)
TextArea
实现自己的滚动条,为它们分配空间,并在需要时自动显示它们。 TextFlow
实际上只是一个简单的布局管理器,并没有这样做。要在需要时将滚动条放在TextFlow
上,只需将TextFlow
包裹在ScrollPane
中:
<ScrollPane>
<TextFlow fx:id="inputText" ... />
</ScrollPane>
在这种情况下,您实际上可以更好地控制滚动条。例如,你可以做
<ScrollPane fitToWidth="true">
然后内容(在这种情况下为TextFlow
)的宽度设置为滚动窗格的宽度(因此永远不会有水平滚动条,只有垂直滚动条)。 ScrollPane
Javadocs列出了所有属性。