JavaFX TilePane不';不要包装文本或显示省略号字符串

JavaFX TilePane不';不要包装文本或显示省略号字符串,java,layout,javafx,Java,Layout,Javafx,我正在使用一个TilePane,其中包含一个GridPane,我使用SceneBuilder和FXML创建了它。问题是TilePane的工作原理非常奇怪,正如标题所说: 当文本太大时,我的布局有严重问题,原因是TilePane没有包装文本或显示省略号字符串,因此当我调整窗口大小时,所有布局都无法进入应用程序 为什么在TilePane中会发生这种情况,并且在边框窗格中无法按预期工作 屏幕截图: 以下是fxml代码: <?xml version="1.0" encoding="UTF-8

我正在使用一个
TilePane
,其中包含一个
GridPane
,我使用
SceneBuilder
FXML
创建了它。问题是
TilePane
的工作原理非常奇怪,正如标题所说:

当文本太大时,我的布局有严重问题,原因是
TilePane
没有包装文本或显示省略号字符串,因此当我调整窗口大小时,所有布局都无法进入应用程序

为什么在
TilePane中会发生这种情况,并且在
边框窗格中无法按预期工作


屏幕截图:


以下是fxml代码:

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.control.ContextMenu?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.control.TitledPane?>
<?import javafx.scene.control.Tooltip?>
<?import javafx.scene.layout.BorderPane?>
<?import javafx.scene.layout.ColumnConstraints?>
<?import javafx.scene.layout.GridPane?>
<?import javafx.scene.layout.RowConstraints?>
<?import javafx.scene.layout.StackPane?>

<fx:root styleClass="smartController" type="StackPane" xmlns="http://javafx.com/javafx/8.0.60" xmlns:fx="http://javafx.com/fxml/1">
   <children>
      <BorderPane fx:id="mainBorder" style="-fx-background-color: transparent; -fx-border-color: red;">
         <top>
            <TitledPane fx:id="titledPane" alignment="CENTER" contentDisplay="CENTER" graphicTextGap="0.0" text="I am The TilePane and i don't like wrapping the text!" wrapText="true" BorderPane.alignment="CENTER">
               <content>
                  <GridPane fx:id="topGrid" gridLinesVisible="true" hgap="5.0" style="-fx-background-color: rgb(0,0,0,0.85);;">
                    <columnConstraints>
                      <ColumnConstraints hgrow="SOMETIMES" percentWidth="70.0" />
                      <ColumnConstraints hgrow="SOMETIMES" minWidth="40.0" percentWidth="15.0" />
                        <ColumnConstraints hgrow="SOMETIMES" percentWidth="15.0" />
                    </columnConstraints>
                    <rowConstraints>
                      <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
                    </rowConstraints>
                     <children>
                        <TextField fx:id="pageField" alignment="CENTER" maxHeight="-Infinity" maxWidth="65.0" minHeight="-Infinity" minWidth="-Infinity" prefHeight="25.0" prefWidth="50.0" GridPane.columnIndex="1" GridPane.halignment="CENTER" GridPane.valignment="CENTER">
                           <tooltip>
                              <Tooltip text="current page" />
                           </tooltip>
                           <contextMenu>
                              <ContextMenu />
                           </contextMenu>
                        </TextField>
                     </children>
                  </GridPane>
               </content>
            </TitledPane>
         </top>
      </BorderPane>
   </children>
</fx:root>

默认情况下,
标题窗格
具有基于
文本的
最小宽度
。要使其父节点将节点大小调整为较小的大小,必须手动指定一个值:


...
这可以在
标题窗格
最小宽度
)的检查器的布局部分进行设置

至于实际包装文本:

默认情况下,
标题窗格
的标题部分不够大,无法容纳多行。您可以使用css样式表对此进行更改:

#titledPane>.title{
-外汇储备高度:50;/*增加可用面积*/
-fx对齐:顶部居中;
-fx填充:4 30;/*增加左填充以对齐文本*/
}
#标题窗格>.title>箭头按钮{
-fx-translate-x:-20;/*向后移动箭头,该箭头也受填充的影响*/
}

你好,Fabian。谢谢你的回答,我可以从SceneBuilder中修复它吗?我可以直接写入代码,但我很好奇。这是右侧布局下拉菜单中的
minWidth
吗?这不起作用。此外,当不需要换行文本时(可用空间足够),这并不能解决标题的高度问题。