Redimensionner TextFlow texte joint parfaitement lié est lorsque des changements de taille de la police

voix
0

J'ai un élément TextFlow sur une StackPane et il est peuplé de 8 lignes de texte, 80 caractères de long. Je suis en train d'ajouter la possibilité de modifier la taille des polices et ont le TextFlow augmenter ou diminuer pour correspondre au changement de taille de la police. Si je réduis la taille de la police, les TextFlow de se comporte comme prévu. Si j'augmente la taille de la police, l'emballage de départ du texte et la taille est tout gondolé.

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

    }

Étant donné que le problème ne se produit que sur l'augmentation de la taille de la police, je suppose que je dois faire le plus grand TextFlow avant de redimensionner les textes joints. Cela n'a pas fonctionné. J'ai aussi essayé de faire un faux texte à la nouvelle taille et l'utilisation de ces dimensions. Peut sembler ne pas le faire fonctionner. Aucun conseil?

Images: rendu

Initial

Initiale

Créé 19/03/2020 à 22:01
source utilisateur
Dans d'autres langues...                            

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