Αλλαγή μεγέθους TextFlow σε απόλυτα βέβαιο συνημμένο κείμενο είναι οι αλλαγές, όταν το μέγεθος της γραμματοσειράς

ψήφοι
0

Έχω ένα στοιχείο TextFlow πάνω από ένα StackPane και έχει συμπληρωθεί με 8 γραμμές του κειμένου, μακράς 80 χαρακτήρες. Είμαι προσπαθεί να προσθέσει τη δυνατότητα να αλλάξει τα μεγέθη γραμματοσειράς και να έχουν το TextFlow αυξηθεί ή να συρρικνωθεί για να αντιστοιχούν με την αλλαγή στο μέγεθος της γραμματοσειράς. Αν μπορώ να μειώσει το μέγεθος της γραμματοσειράς, οι συμπεριφέρεται TextFlow όπως αναμένεται. Αν μπορώ να αυξήσει το μέγεθος της γραμματοσειράς, την πρώτη εκκίνηση του κειμένου και το μέγεθος είναι όλα στρεβλή.

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

    }

Δεδομένου ότι το πρόβλημα συμβαίνει μόνο στην αύξηση του μεγέθους γραμματοσειράς, υπέθεσα ότι θα πρέπει να κάνει το TextFlow μεγαλύτερο πριν την αλλαγή μεγέθους τα συνημμένα κείμενα. Αυτό δεν λειτούργησε. Επίσης έχω δοκιμάσει να κάνει μια εικονική κειμένου στο νέο μέγεθος και τη χρήση αυτών των διαστάσεων. δεν φαίνεται να πάμε στη δουλειά μας. Οποιαδήποτε συμβουλή?

εικόνες: αρχική

Αρχική

Αρχική

Δημοσιεύθηκε 19/03/2020 στις 22:01
πηγή χρήστη
Σε άλλες γλώσσες...                            

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