Resize TextFlow perfect gebonden bijgevoegde tekst is wanneer lettergrootte veranderingen

stemmen
0

Ik heb een TextFlow element over een StackPane en wordt gevuld met 8 regels tekst 80 tekens lang. Ik ben op zoek naar de mogelijkheid om lettertype grootte te veranderen en hebben de TextFlow groeien of krimpen om te corresponderen met de verandering in lettergrootte toe te voegen. Als ik het lettertype te verkleinen, aangezien de TextFlow gedraagt ​​verwacht. Als ik de lettergrootte, de tekst start wikkelen te verhogen en de grootte is alles vervormd.

    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());

    }

Aangezien het probleem gebeurt alleen op de lettergrootte toeneemt, ik veronderstelde dat ik zou hebben om de TextFlow groter voor de grootte van het bijgevoegde teksten te maken. Dit heeft niet gewerkt. Ik heb ook geprobeerd het doen van een dummy tekst op het nieuwe formaat en het gebruik van deze dimensies. Kan niet lijken te krijgen om te werken. Enig advies?

Afbeeldingen: Initial

Initial

Initial

De vraag is gesteld op 19/03/2020 om 22:01
bron van user
In andere talen...                            

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