小编Ben*_*enT的帖子

如何让 JavaFX TextFlow 自动剪切长文本?

我想使用 TextFlow 显示一些格式化文本。以前,我使用了一个简单的 Label(将 wrapText 设置为 true)来显示该文本(未格式化),但想要使用一个库来提供我想使用 TextFlow 显示的文本列表。

我的问题是我要显示的文本大于可用区域。当空间不足时,标签会切断文本。这很好用。不幸的是 TextFlow 没有。当文本变得太长时,它会溢出 TextFlow 所在的区域。相邻的 TextFlow 会相互重叠。我怎样才能模仿标签的行为?

可以在此处和下方找到 MWE 。我使用带有两列的 GridPane。左侧三个 TextFlow,右侧三个标签。所有六个元素的显示文本都相同。它产生这个窗口:

在此处输入图片说明

如您所见,左侧(在 TextFlows 中)的文本重叠。

我试过了,没有成功:

  • 设置TextFlow的maxWidth和maxHeight为可用区域
  • 创建适当大小的矩形并将其设置为剪辑

爪哇:

package sample;

import javafx.application.Application;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.text.Text;
import javafx.scene.text.TextFlow;
import javafx.stage.Stage;

public class Main extends Application {

    @FXML
    private TextFlow textFlow0;
    @FXML
    private TextFlow textFlow1;
    @FXML
    private TextFlow textFlow2;
    @FXML
    private Label label0;
    @FXML
    private Label label1;
    @FXML
    private Label label2; …
Run Code Online (Sandbox Code Playgroud)

javafx textflow

4
推荐指数
1
解决办法
132
查看次数

标签 统计

javafx ×1

textflow ×1