原來這裏是FXML文件(進口略去了):TextFlow vs TextArea,佈局問題;爲什麼TextFlow在TextArea沒有的地方搞亂了它?
<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>
我想在執行文本部分的文本高亮什麼是現在與inputText
的fx:id
TextArea
。爲此,我被推薦使用TextFlow
而不是TextArea
。 「XML評論」:HERE
。
我已經在「XML註釋」INJECTION
上填寫inputText
的內容與(文本)文件的內容。這適用於TextArea
。
現在,我做了什麼:我剛剛用TextFlow
替換TextArea
,改編了代碼,就是這樣。沒有其他的。
當我加載一個體積很大的文本文件時,佈局會搞砸。在我加載它,佈局就好:
現在我試着加載一個文本文件,這是足夠長的時間,以便它不適合入TextFlow
,因爲它是和...這就是我得到:
我使用TextArea
時,有沒有這樣的問題。後者將自動「插入」(如果這是正確的話)垂直和水平滾動條,並將保持我的MenuBar
完好無損,非常感謝。
但是TextArea
不允許我只突出部分文字......所以我需要一個TextFlow
。
如何使TextFlow
表現爲「layout-wise」,如TextArea
?
您是否嘗試過在'ScrollPane'中包裝'TextFlow'? –
@James_D呃...不,我會試試... – fge
@James_D我有這種直覺,但是......你又做了一次!在'ScrollPane'中包裝做了訣竅......如果你想讓這個答案成爲答案,我會接受它,如果你有它的話,解釋爲什麼'TextArea'不需要它!我真的很糟糕地看到任何GUI,如你所見:/ – fge