首页 > 解决方案 > 单击时,我的文本可以在下面显示更多文本吗?

问题描述

在我的应用程序中,我正在创建一个帮助页面,我想创建文本,当单击该文本时,它会在下面显示更多描述文本,而当再次单击标题/问题时,它会隐藏文本。这在许多常见问题解答页面上很常见,但我正在努力寻找在 JavaFX 上执行此操作的方法。

标签: javafx

解决方案


你可以使用TitledPanes:

Map<String, String> questions = new HashMap();
questions.put("Question 1", "Lorem ipsum dolor sit amet, consectetur"
        + "adipiscing elit, sed do eiusmod tempor incididunt ut labore"
        + "et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud"
        + " exercitation ullamco laboris nisi ut aliquip ex ea commodo"
        + " consequat. Duis aute irure dolor in reprehenderit in voluptate"
        + " velit esse cillum dolore eu fugiat nulla pariatur. Excepteur"
        + " sint occaecat cupidatat non proident, sunt in culpa qui"
        + " officia deserunt mollit anim id est laborum.");
questions.put("Question 2", "Not answered yet");

VBox content = new VBox();
questions.forEach((key, value) -> {
    Label label = new Label(value);
    TitledPane tp = new TitledPane(key, label);
    tp.setExpanded(false);
    label.setWrapText(true);
    content.getChildren().add(tp);
});

您可能希望通过将以下样式表添加到场景中来使用 CSS 样式表来更改标题的样式:

.titled-pane > .title {
    -fx-background-color: transparent transparent transparent;
}

推荐阅读