Resize TextFlow doskonale związany załączonego tekstu zmienia się, gdy rozmiar czcionki

głosy
0

Mam elementu TextFlow nad StackPane i jest wypełniona 8 linii tekstu 80 znaków długości. Próbuję dodać możliwość zmiany wielkości czcionki i mają rosnąć lub kurczyć TextFlow korespondować ze zmianą rozmiaru czcionki. Gdybym zmniejszyć rozmiar czcionki, zachowuje TextFlow jak oczekiwano. Gdybym zwiększyć rozmiar czcionki, zawijanie tekstu początkowego i rozmiar jest wszystko wypaczone.

    public List<Text> lines = new ArrayList<>();

    public void testTerminal()
    {

        for (int x = 0; x < 8; x++)
        {
            Text t = new Text(123567890123456789012345678901234567890123567890123456789012345678901234567890\n);
            t.setFont(Font.font(Monospaced, 14));
            t.setFill(Color.WHITE);
            t.setWrappingWidth(Double.MAX_VALUE);
            lines.add(t);
        }

        this.terminal.getChildren().addAll(lines);

        terminal.setMinHeight(lines.get(0).getBoundsInLocal().getHeight()*8.0);
        terminal.setMaxHeight(lines.get(0).getBoundsInLocal().getHeight()*8.0);

        terminal.setMinWidth(lines.get(0).getBoundsInLocal().getWidth());
        terminal.setMaxWidth(lines.get(0).getBoundsInLocal().getWidth());
    }

    public void changeFontSize(int size)
    {


        // grow the TextFlow much larger than it should need to be
        // for the new font size.
        terminal.setMinHeight(lines.get(0).getBoundsInLocal().getHeight()*16.0);
        terminal.setMaxHeight(lines.get(0).getBoundsInLocal().getHeight()*16.0);

        terminal.setMinWidth(lines.get(0).getBoundsInLocal().getWidth()*10);
        terminal.setMaxWidth(lines.get(0).getBoundsInLocal().getWidth()*10);


        for (Text t: lines)
        {
            t.setFont(Font.font(Monospaced, size));
        }

        terminal.setMinHeight(lines.get(0).getBoundsInLocal().getHeight()*8.0);
        terminal.setMaxHeight(lines.get(0).getBoundsInLocal().getHeight()*8.0);

        terminal.setMinWidth(lines.get(0).getBoundsInLocal().getWidth());
        terminal.setMaxWidth(lines.get(0).getBoundsInLocal().getWidth());

    }

Ponieważ problem występuje tylko na zwiększenie rozmiaru czcionki, Sądziłem, że będę musiał zrobić TextFlow powiększenie rozmiaru przed załączone teksty. To nie pracował. Próbowałem zostały również robi obojętne tekst w nowym rozmiarze i przy użyciu tych wymiarów. nie wydaje się uzyskać go do pracy. Jakakolwiek rada?

Zdjęcia: Początkowa

Początkowy

Początkowy

Utwórz 19/03/2020 o 22:01
źródło użytkownik
W innych językach...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more