Boa noite galera meu nome é Silvio…sou novo por aki e tenho uma duvida.
Eu tenho um JTextArea que preciso imprimir, defini suas propriedades setLineWrap(true) e setWrapStyleWord(true), funciona tudo certo, porem quando add esse JTextArea no drawString para montar a paguina de impressão o texto nao quebra linha…alguem tem alguma sugestão de como resolver ???
VLW…
Problemas com JTextArea
6 Respostas
Seria o “\n” (???)
Acredito que setLineWrap somente irá quebrar dentro do componente, ele não adiciona o caracterer de nova linha “\n”.
Acho que você vai ter que melhorar o seu algoritmo.
Umas dicas:
- Calcule o tamanho do texto
- Utilize o tamanho do componente, veja as palavras cabem em cada linha do componente e
- Introduza os caracteres especiais \r\n onde deveria quebrar a linha.
vlw jeancz por ter respondido…realmente ele so quebra dentro do componente…vou tentar recuperar o texto e colocar um tamanho especifico para cada linha do textarea e add o \n no fim ai coloco a resposta aki.
O silvio, se você conseguir fazer esta questão coloca o código aqui pra mim adaptar na minha aplicação. Vai ajudar muito.
Valeu.
Boa noite a todos q responderam a pergunta… agora surge a duvida como inserir o \n na string.
por exemplo retornei o tamanho dela com o length() agora quero q em determinada posição da string seja inserido o \n como fazer ???
// inserção na posição 3
String s = "Juca";
s = s.substring(0,2) + "\n" + s.substring(3);
Não existe um método na classe String que faça isso para gente, porém da pra fazer com concatenação de String. Sugiro que você faça uma classe helper que faça isso para você. Inclusive na solução acima pode ter um probleminha de performance se aplicada em looping com muitas interações. Nesse caso você pode fazer algo assim:
// inserção na posição 3
String s = "Juca";
// existe outra classe chamada StringBuffer que faz a mesma coisa, mas os métodos dela são synchronized, gerando um overhead um pouco maior
StringBuilder builder = new StringBuilder();
builder.append(s);
// este método insere direto na posição
builder.insert(2, "\n");
s = builder.toString();
[/quote]