Resize TextFlow dokonale vázaného přiloženého textu je při změně velikosti fontu

hlasů
0

Mám TextFlow prvek nad StackPane a je naplněn 8 řádků textu 80 znaků dlouhé. Snažím se přidat možnost měnit velikost písma a mají TextFlow růst nebo zmenšit tak, aby odpovídala změně velikosti písma. Mám-li zmenšit velikost písma, že textFlow chová podle očekávání. Mám-li zvětšit velikost písma jazyce zalamování textu, a velikost je všechny pokřivené.

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

    }

Vzhledem k tomu, že problém se stane pouze při zvětšení velikosti písma, předpokládal jsem, že bude muset učinit TextFlow větší než velikosti přiložených textů. To nefungovalo. Také jsem se snažil dělat fiktivní text na nové velikosti a použití těchto rozměrů. Nedaří se mi dostat se do práce. Nějaká rada?

Snímky: počáteční

Initial

Initial

Položena 19/03/2020 v 22:01
zdroj uživatelem
V jiných jazycích...                            

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