Cambiar el tamaño de texto entre TextFlow perfectamente consolidado de cambios en el tamaño del tipo de letra cuando

votos
0

Tengo un elemento TextFlow sobre un StackPane y está poblada con 8 líneas de texto, 80 caracteres de largo. Estoy tratando de añadir la capacidad de cambiar los tamaños de fuente y haga que el TextFlow aumentar o reducir para que se corresponda con el cambio de tamaño de la fuente. Si puedo reducir el tamaño de la fuente, se comporta como se esperaba TextFlow. Si aumento el tamaño de fuente, envoltura de inicio del texto y el tamaño es todo deformado.

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

    }

Dado que el problema sólo ocurre en aumentar el tamaño de fuente, di por supuesto que tendría que hacer el mayor TextFlow antes de redimensionar los textos adjuntos. Esto no ha funcionado. También he intentado hacer un texto de relleno en el nuevo tamaño y el uso de esas dimensiones. Parece que no puede conseguir que funcione. ¿Algún consejo?

imágenes: inicial

Inicial

Inicial

Publicado el 19/03/2020 a las 22:01
fuente por usuario
En otros idiomas...                            

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