Quebrar linha em diversas Strings

8 respostas
V

Bom dia,

Estou com um problema, possuo varias strings e ao pesquisar determinada informação, preciso exibir o conteúdo de uma string em um JTextArea.
Porém na quebra de linha, acaba quebrando também palavras.

“OPERACAO TRANSFERIDA P/CREDITO LIQUIDACAO/PREJ
UIZO-NEGADO”

Tentei jogar em um vetor e contar apenas as palavras e quebrar linha depois de um número de palavras, porém a frase fica “deformada”, pois as palavras variam muito de tamanho, e preciso quebrar a string apenas quando chegar do final da area reservada para o JTextArea.

“DISTRIBUIDORA/CORRETORA DE
TITULOS VALORES MOBILIARIOS”

Como posso fazer isto?

Obrigado desde já pessoal.

8 Respostas

W

http://download.oracle.com/javase/6/docs/api/java/lang/String.html#split(java.lang.String)

V

Então, eu utilizei o comando “spli” para contar as palavras e poder quebrar a linha, porém como eu disse, algumas palavras são maiores de tamanho.

S

O JTextArea não faz a quebra de linha? Acho que é só dar um setLineWrap(true) na sua textarea para a quebra de linha acontecer automaticamente.

W
vinicius8891:
Então, eu utilizei o comando "spli" para contar as palavras e poder quebrar a linha, porém como eu disse, algumas palavras são maiores de tamanho.
acho que você não não entendeu como o método split funciona. tente:
public class Teste {
    public static void main(String[] args) {
        String[] linhas = "OPERACAO TRANSFERIDA P/CREDITO LIQUIDACAO/PREJUIZO-NEGADO".split("/");

        for (String linha : linhas) {
            System.out.println(linha);
        }
        System.out.println(linhas.length);
    }
}
ou eu não entendi o que você precisa.

[edit]ops! lendo novamente sua pergunta, percebi que não a havia entendido e propus uma solução que não serve. :D[/edit]

O

Pelo o que eu e o soaresinfo entendemos, ele quer quebrar o texto na visualização do textArea, não na string em si.

Sendo assim, basta usar o setLineWrap( true ) como ele disse.

Mas o que está faltando é textArea.setWrapStyleWord( true );

Isso impede do textArea exibir quebra de linha no meio das palavras.

V

Então, na verdade eu preciso quebrar a string, pois não estou utilizando swing em sí, mas uma biblioteca de componentes da empresa em que trabalho.
O componente é similar ao JTextArea, onde possui até o comando setWrapText, que força a quebra de linha, mas diferente do JTextArea, esse comando quebra a frase no final do JTextArea, mas quebra palavras também.

O
vinicius8891:
Então, na verdade eu preciso quebrar a string, pois não estou utilizando swing em sí, mas uma biblioteca de componentes da empresa em que trabalho. O componente é similar ao JTextArea, onde possui até o comando setWrapText, que força a quebra de linha, mas diferente do JTextArea, esse comando quebra a frase no final do JTextArea, mas quebra palavras também.
Certo..
String original = "Seu texto neste ponto";
		ArrayList<String> strings = new ArrayList<String>();

		int i = 0;
		int max = 5; // Tamanho máximo por string. Se queres em 2 linhas, use: original.length() / 2
		
		while( i < texto.length() ) {
			if ( a.length() > ( i + max ) ) {
				strings.add( texto.substring(i,i+max) );
			} else {
				strings.add( texto.substring(i) );
			}
			i += max;
		}
V

Obrigado pessoal pela ajuda,
passei esse problema para o estrutural, responsável pelos componentes, pois é uma falha do componente, pois com o JTextArea é possível quebrar a linha sem a quebra de palavras.
Mas valeu pela força.

Obrigado.

Criado 26 de abril de 2011
Ultima resposta 27 de abr. de 2011
Respostas 8
Participantes 4