Ridimensiona TextFlow al testo racchiuso perfettamente rilegato è cambia la dimensione dei caratteri, quando

voti
0

Ho un elemento TextFlow nel corso di uno StackPane ed è popolato con 8 linee di testo, lunghi 80 caratteri. Sto cercando di aggiungere la possibilità di cambiare le dimensioni dei caratteri e hanno il TextFlow crescere o ridursi a corrispondere con il cambiamento di dimensione del carattere. Se riduco la dimensione del carattere, gli si comporta TextFlow come previsto. Se io aumentare la dimensione del carattere, avvolgimento inizio del testo e la dimensione è tutti deformato.

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

    }

Dal momento che il problema si verifica solo su come aumentare la dimensione del carattere, ho pensato che avrei dovuto fare la TextFlow più grande prima di ridimensionare i testi allegati. Questo non ha funzionato. Ho anche provato a fare un testo fittizio al nuovo formato e l'utilizzo di quelle dimensioni. Non riesco a farlo funzionare. Qualche consiglio?

Immagini: iniziale

Iniziale

Iniziale

È pubblicato 19/03/2020 alle 22:01
fonte dall'utente
In altre lingue...                            

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