Странное поведение JavaFX, связанное с размером текстовых элементов - PullRequest
0 голосов
/ 20 сентября 2018

возникла проблема с некоторым написанным мною кодом, который я предположил просто как ошибка в моей логике.Однако я разобрал проблему до следующего и не могу понять, что происходит:

С этим классом

public class Why extends Application
{
    @Override
    public void start(Stage arg0) throws Exception
    {
         System.out.println(textHeight("X", 5, TextBoundsType.LOGICAL)); // A
         System.out.println(textHeight("X", 5, TextBoundsType.LOGICAL_VERTICAL_CENTER)); // B
         System.exit(0);
    }

    public double textHeight(String text, double size, TextBoundsType tbt)
    {
        Text t = new Text(text);
        t.setBoundsType(tbt);
        t.setFont(Font.font("arial", size));
        return t.getLayoutBounds().getHeight();
    }

    public static void main(String[] args)
    {
        launch(args);
    }
}

Если вы запускаете эту программу и наблюдаете за выводом каждой функцииВызовите, затем поменяйте местами закомментированные строки A и B и запустите, вывод вызова с «ЛОГИЧЕСКИМИ» границами изменится.Это очень странно, поскольку я не вижу, как функция textHeight не является чистой.Кроме того, если вы измените размер или параметры текста в вызовах так, чтобы они не были одинаковыми в обеих строках, это поведение исчезнет.Я запускаю эту программу с jre1.8.0_121, это может быть потенциальная ошибка или я что-то упустил?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...