ATitledPane
有一个标题。以下是其中几个的外观:
标题是“更多..”、“笑脸”和“发送”。我想完全隐藏发送标题,而不仅仅是删除文本“发送”。最终结果应该是这样的:
是否可以?
我只会Pane
对第三个内容区域使用标准而不是 aTitledPane
并应用相关样式来欺骗 JavaFX 设置底部面板的样式,就好像它是 a 的内容区域一样TitlePane
。
粗略地说,您将需要一些类似于此的 FXML 标记:
<VBox styleClass="titled-pane"
xmlns:fx="http://javafx.com/fxml/1"
xmlns="http://javafx.com/javafx/2.2" >
<children>
<TitledPane animated="false" text="untitled">
<content>
<AnchorPane minHeight="0.0"
minWidth="0.0"
prefHeight="180.0"
prefWidth="200.0" />
</content>
</TitledPane>
<TitledPane animated="false" text="untitled">
<content>
<AnchorPane id="Content"
minHeight="0.0"
minWidth="0.0"
prefHeight="180.0"
prefWidth="200.0" />
</content>
</TitledPane>
<Pane prefHeight="200.0" prefWidth="200.0" styleClass="content">
<children>
<Button layoutX="74.0"
layoutY="21.0"
mnemonicParsing="false"
text="Button" />
</children>
</Pane>
</children>
</VBox>
这基本上将三个窗格放置在 VBox 中,以便它们正确堆叠并应用一些样式来告诉 JavaFX 如何呈现第三个Pane
.
为了获得第三个的正确外观,Pane
您需要给它一个“内容”样式类。Pane
这是作为子结构一部分的背景的名称,它告诉 JavaFX 以与控件TitledPanes
相同的方式呈现窗格。TitledPane
这将不起作用,因为实际的 css 定义看起来像这样:
.titled-pane .content { // styles defined here }
这意味着该样式仅适用于样式类为“content”的节点,前提是它们也在样式类为“titled-pane”的节点内。
解决这个问题的简单方法是给根容器Pane
(VBox
在这种情况下)一个样式类“标题窗格”,有效地欺骗 JavaFX 认为第三个窗格是一个titledPanes
内容区域。
其输出如下所示:
并且两者都TitledPanes
崩溃了: