Resize Textflow perfekt gebunden eingeschlossen Text ist, wenn Schriftgröße ändert

stimmen
0

Ich habe ein Textflow-Element über einen StackPane und mit 8 Zeilen Text, 80 Zeichen lang bevölkert ist. Ich versuche, die Fähigkeit hinzuzufügen, Schriftgrößen zu ändern und die Textflow zu entsprechen mit der Änderung der Schriftgröße vergrößern oder verkleinern. Wenn ich die Schriftgröße, die Textflow verhält sich wie erwartet zu reduzieren. Wenn ich die Schriftgröße erhöhen, die Start Verpackung des Textes und die Größe alle verzogen.

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

    }

Da das Problem auf die Erhöhung der Schriftgröße geschieht nur, angenommen ich, ich würde die Textflow größer machen, bevor die beiliegenden Texte Ändern der Größe. Das hat nicht funktioniert. Ich habe auch einen Blindtext in der neuen Größe und mit diesen Dimensionen versucht zu tun. Kann nicht scheinen, um es an die Arbeit zu machen. Irgendein Rat?

Bilder: anfängliche

Initial

Initial

Veröffentlicht am 19/03/2020 um 22:01
quelle vom benutzer
In anderen Sprachen...                            

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