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.