Resize TextFlow ao texto incluido perfeitamente ligada é alterações de tamanho, quando fontes

votos
0

Eu tenho um elemento TextFlow ao longo de um StackPane e é preenchida com 8 linhas de texto, 80 caracteres de comprimento. Eu estou tentando adicionar a capacidade de alterar o tamanho das fontes e têm o TextFlow crescer ou encolher para corresponder com a mudança no tamanho da fonte. Se eu reduzir o tamanho da fonte, se comporta TextFlow como esperado. Se eu aumentar o tamanho da fonte, o acondicionamento início do texto e o tamanho é todos 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());

    }

Desde que o problema só acontece em aumentar o tamanho da fonte, eu achava que eu teria que fazer o TextFlow maior antes de redimensionar os textos fechados. Isso não tem funcionado. Eu também tentei fazer um texto fictício com o novo tamanho e usando essas dimensões. Parece que não consegue fazê-lo funcionar. Algum conselho?

imagens: inicial

Inicial

Inicial

Publicado 19/03/2020 em 22:01
fonte usuário
Em outras línguas...                            

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