Formatar o texto do jTextArea

Galera, boa noite.
Gostaria de saber se tem alguma forma de formatar o texto do jTextArea.

Que fique mais ou menos assim:

marcos---------------------------solteiro
vinicios---------------------------casado
seu vicente------------------------noivo
fernando-------------------------casado

e assim por diante, independente do tamanho do nome que for inserido, por que, quando sai no jTextArea, sai um embaixo do outro normal, mas sem essa formatação ai.

1 curtida

Já precisei fazer isso para apresentar os textos alinhados.

Basicamente eu contei o tamanho das palavras da esquerda, guardei o tamanho da maior e usei ela como referência num loop para gerar o “pontos” até cada palavra da direita.

A única diferença é que, no meu caso, as palavras da direita tinham sempre o mesmo tamanho, e que eu apresentei num HTML e não num textarea (mas acho que dá para aplicar a mesma lógica no seu caso).

1 curtida

Então por favor, me mostre como se faz.

Esse é um exemplo feito em js:

<style>
    .txt {
        width: 400px;
        height: 200px;
    }
</style>

<textarea id="txt" class="txt"></textarea>

<script>
    const data = [
        ['marcos', 'solteiro'],
        ['vinicios', 'casado'],
        ['seu vicente', 'noivo'],
        ['fernando', 'casado']
    ];

    const txt = document.querySelector('#txt');

    const max = data.reduce((t, e) => {
        return e[0].length > t ? e[0].length : t;
    }, 0);

    function addDots(value, max, extraDots) {
        let dots = '';
        const size = max - value.length + extraDots;
        
        for (let i = 0; i < size; i++) {
            dots += '.';
        }

        return dots;
    }

    let text = '';
    let extraDots = 5

    for (let e of data) {
        text += e[0];
        text += addDots(e[0], max, extraDots);
        text += e[1] + '\n';
    }
    
    txt.value = text;
</script>

Tente adaptar para sua necessidade. Qualquer dúvida, pode perguntar por aqui.