Só Deus é testemunha do tanto q eu pesquisei e testei códigos antes de criar este post. ^^
Tô tentando criar uma linha de uma Jtable cujo texto seja uma String com mais de uma linha de texto. Exemplo: meu texto seria " aoiajoiaoidjaoijdoaijd
alkdjalkjdlakjlkjdlkajlkajklajlajal
lajlakjaljlakjalkjalkjalkjalajlkajlk".
Este texto tem 3 linhas, agora preciso colocar isso dentro de uma row da jtable. Tem como?
Se minha dúvida nao tiver clara eu posto um xls com o tabela q eu quero montar.
Já posso adiantar que você vai precisar aumentar a altura das linhas para conseguir ver todo o texto. Para isso, você deve usar o seguinte comando:
table.setRowHeight(60); // altura 60 pixels
Você provavelmente não vai poder deixar as células editáveis, porque o usuário vai ver o texto HTML quando ele tentar modificar o texto.
Espero ter ajudado.
Grande abraço,
Hugo.
T
TiagoFoil
Arigatoo!
Arigatoo!
Nem sabia q funcionava em html a formataçao do label… Sou bebezinho em Swing ainda. ^^
Eu tava fazendo “\n” igual um doido! Ré, ré, ré!
Até cheguei a tentar inserir um JTextArea. Absurdo de burrice minha! o/
vlw mesmo hvidal!
Abraços!
T
TiagoFoil
bom, funcionou… mas a formataçao nao ta ficando boa… é q a linha fica com o texto sempre no meio… entao fica com um espaço antes do texto quanto mairo o texto mais eu tenho q aumentar a altura e maior fica o espaço antes do texto… Ç____Ç
H
hvidal
Oi Tiago,
Coloque uma tela capturada no forum para que eu possa ver o problema.
(Botão “Anexar Arquivo” ao lado do botão “Enviar”)
Abraços,
Hugo.
T
TiagoFoil
Consegui resolve o problema do espaçamento exagerado e da quebra de linha e até aprendi a justificar o texto… Porém agora eu queria ifenizar todo o texto e quando justificar, nao pegasse a ultima linha pq senao fica esquisito…
O problema do espaçamento eu resolvi acrescentando as seguintes linhas: DefaultTableCellRenderer tcrColumn = new DefaultTableCellRenderer();
tcrColumn.setVerticalAlignment(JTextField.NORTH);
tcrColumn.setHorizontalAlignment(JTextField.CENTER);
helpTbl = new JTable(getHelpModel());
for(int i = 0; i < helpTbl.getColumnCount(); i++){
helpTbl.getColumnModel().getColumn(i).setCellRenderer(tcrColumn);
}
Agora como faço pra justificar sem pegar a última linha? pegando a última linha eu consigo com a tag
e pra ifenizar?
De qualquer forma já vc me ajudou muito, Arigatoo ^^
H
hvidal
Oi Tiago,
O problema agora começa a ficar mais voltado para o HTML do que para o java
Acredito que para consertar o problema do texto justificado, você tenha que colocar uma quebra de linha no final da última linha, tipo:
Para ifenizar, eu não sei bem como resolver.
Investigue mais sobre isso em HTML e veja se é possível.
Grande abraço,
Hugo.
T
TiagoFoil
Bom acabei desenvolvendo um método que recebe uma string sem formatação alguma e coloca nessa formataçao de html. Não fica ifenizado mas ao menos fica em varias linhas conforme o tamanho da string e o tamanho da celula q ela vai ficar. Nesse caso eu suponho q as linhas suportem 70 caracteres. Esse valor deve ser alterado dependendo de cada caso.
Uma melhoria imediata para o seu método seria utilizar a classe StringBuffer ao invés da classe String. Isso vai melhorar muito o desempenho do método.
Se você não conhece a classe StringBuffer, procure conhecê-la. Vai valer a pena!
Grande abraço,
Hugo.
T
TiagoFoil
Valeu a dica! estudando StringBuffer
Qualquer novidade posto aqui. ^^
Abraços!
T
TiagoFoil
Depois de ler um pouquinho sobre StringBuffer…
/** * Recebe uma string sem formatação e aplica formatação de parágrafo para * melhor visualização. Usando tags HTML. * * @param txt - String que deseja formatar. * @param lineSize - Largura da linha. * @return String formatada em parágrafos e entre as tags HTML. */publicStringformatTxtForShowInTable(Stringtxt,intlineSize){StringBuffertxtFormated=newStringBuffer(txt);intcount=1;inttempInt=txt.length()/lineSize;while(count<=tempInt){txtFormated.insert((lineSize*count),"<BR>");count++;}txtFormated.insert(0,"<HTML><P ALIGN=LEFT>");txtFormated.append("<BR></P></HTML>");returntxtFormated.toString();}
Agora falta hifenizar.
Any help?? ^^
T
TiagoFoil
ah, outra dúvida. Eu fiz um teste texto tal o “texto tal” fica até azul e grifado igual a um link, porém ele nao muda o curso pra mãozinha nem fica clicável. Porque isso ?