В своем приложении я использую TextFlow
, который содержит до трех Text
детей. Когда текст переполняется, текст разделяется на несколько строк (то, что я понял, называется «перенос текста», что, мне кажется, я не хочу?). Мне нужен Text-Flow, чтобы обрезать переполненный текст. Для Labeled
есть атрибут стиля -fx-text-overrun
- для меня подойдут значения clip или ellipsis, но это недоступно для Text-Flow
s. Я попытался установить pref-Width TextFlow на Region.USE_COMPUTED_SIZE
, как это предлагается здесь , но это не помогло, а скорее заставляет TextFlow переносить текст на несколько строк.
Что мне делать?
Я использую TextFlow (например, вместо Label), потому что объекты Text внутри TextFlow должны иметь другой стиль (текст в середине должен быть выделен жирным шрифтом) , Может быть, есть лучшая альтернатива ie для TextFlow, которая позволяет обрезать переполненный текст?
Вот пример:
public class TestApplication extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
TextFlow example = new TextFlow();
example.getChildren().addAll(new Text("A very long text."), new Text("So long that will wrap, if it's parent is too small."), new Text("But instead the overrun text should be clipped."));
example.setPrefWidth(Region.USE_COMPUTED_SIZE);
example.setStyle("-fx-font-size: 14px");
HBox wrapper = new HBox(example);
wrapper.setMaxWidth(30);
wrapper.setStyle("-fx-border-color: black");
HBox root = new HBox(wrapper);
Scene scene = new Scene(root, 500, 500);
primaryStage.setScene(scene);
primaryStage.show();
}
}