Yeni boy TextFlow mükemmel bağlı kapalı Metin yazı tipi boyutu değişiklikler var

oy
0

Bir StackPane üzerinde bir TextFlow öğesi ve 80 karakter uzunluğunda Metin 8 hatları, doldurulur. Ben yazı tipi boyutları değiştirebilir ve TextFlow büyümek veya yazı tipi boyutunda bir değişiklikle eşleşecek şekilde küçültmek zorunda yeteneği eklemek çalışıyorum. Ben yazı tipi boyutunu azaltmak için, TextFlow davranır beklendiği gibi. Ben yazı tipi boyutu, metin başlangıç ​​sarma artırmak ve boyut tüm çarpık ise.

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

    }

sorun yalnızca yazı tipi boyutunu büyütmek olur, ben ben kapalı metinleri yeniden boyutlandırma önce TextFlow büyütmek zorunda kalacak üstlendi. Bu işe yaramadı. Ayrıca yeni boyutta bir model metni yapıyor ve bu boyutları kullanarak denedim. o iş için görünmektedir olamaz. Herhangi bir tavsiye?

Görüntüler: Render

İlk

İlk

Oluştur 19/03/2020 saat 22:01
kaynak kullanıcı
Diğer dillerde...                            

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