Каков поддерживаемый метод вычисления ширины строки (в пикселях) в JDK 10? - PullRequest
0 голосов
/ 05 июня 2018

Я не хочу использовать AWT.Я использовал FontMetrics.computeStringWidth (), но ушел в JDK 10, ломая мое приложение.Есть ли альтернатива, которая не требует создания нового фреймворка (я использую javafx)

1 Ответ

0 голосов
/ 05 июня 2018

Вы можете использовать Text и получить размер из свойства boundsInLocal.(Узел Text не нужно присоединять к сцене, чтобы это работало.)

Следующий код сохраняет ширину Rectangle такой же, как и размер Text.

@Override
public void start(Stage primaryStage) throws Exception {
    Text text = new Text();
    TextField textField = new TextField();
    Rectangle rect = new Rectangle(0, 20);

    textField.textProperty().addListener((o, oldValue, newValue) -> {
        text.setText(newValue);
        rect.setWidth(text.getBoundsInLocal().getWidth());
    });

    Scene scene = new Scene(new VBox(textField, text, rect), 600, 400);
    primaryStage.setScene(scene);
    primaryStage.show();
}
...