entendo que não precisava do if…ja tirei…mas mesmo assim ele devia entrar, n devia??
agora mesmo sem o if ele altera o tamanho mas todos ficam iguais, e não igual eu coloquei
F
fredcrs
Quando passo para o construtor, na hora de construir a JTable dai funciona…o jeito é remover a tabela e criar uma nova?? pq não altera o tamanho corretamente?
Ele até funciona mas deixa todas as colunas do mesmo tamanho
castiel
fredcrs, observando o seu código vc está passando o tamanho das colunas no i, e está fazendo um for para settar todas as colunas com o mesmo tamanho.
não sei se é o seu objetivo mais tenta passa o numero da coluna e o tamanho que quer.
F
fredcrs
certo…verdade…agora corrigi, mas continua todas do mesmo tamanho… n era pra tar certo?
public void setTamanhoDasColunas(int...i)
{
TableColumn coluna = null;
int x = 0;
for(int numero: i)
{
coluna = tabela.getColumnModel().getColumn(x);
coluna.setPreferredWidth(numero);
x++;
}
this.modelo.atualizaColunas();
}
tbm ficou tudo do mesmo tamanho…dai fiz invez de x ali no getColumn coloquei x+1 e dai funcionou, mas deu IndexoutofBouds Exception (lógico)
castiel
Cara acho que vc vai ter que settar o tamanho de cada coluna uma por uma,
no seu código eu só não consegui entende em que vc está basendo o tamanho das colunas já que todas vão ser do tamanho de x, e x vai aumentando de 1 em 1, seria quase que imperceptível a mudança nos tamanhos das colunas. o que pode fazer é um for por todas as colunas da tabela. Pegar o título das colunas e basear o tamanho nelas
//não sei ao certo se é getColumnCount()for(inti=0;i<=tabela.getColumnCount();i++){coluna=tabela.getColumnModel().getColumn(i);//aqui ele pega o título da coluna e multiplica por 3(altere para o numero que ficar melhor a disposição das colunas), para definir o tamanho.coluna.setPreferredWidth(coluna.getText().length()*3);}
veja se funciona e me diga.
F
fredcrs
Sim, entendi seu codigo que tbm está certo.
Vou tentar ao chegar em casa…
Mas o que eu queria fazer nesse caso é passar para o método os tamanhos das colunas respectivamente.
setTamanhoDasColunas(20, 300, 10, 50);
Tentei fazer assim agora, mas tbm nao funciona…sera q tem q fazer uma nova tabela para funcionar?? E não deve dar pra mudar o tamanho das colunas depois de prontas?
Pois o código é o mesmo do construtor…e aqui não funciona…ele deixa todas do mesmo tamanho
N sei pq da certo se comeco alterando da segunda coluna! getColumn(1);
da certo mas dps da IndexOutOfBounds Exception (logicamente)
castiel
Vc disse que elas ficam do mesmo tamanho, mais o tamanho chega mudar comparado a antes de chamar o método?
Qualquer coisa tente criar uma nova jTable e dar um setmodel
F
fredcrs
Po cara, valeu pela forca…mas realmente não deu…fiz uma outra tabela, um novo table model …tentei remover do scroll e adicionar a nova tabela e nao deu…
depois removi o scroll da InternalFrame e tbm nao deu
o engracado é que ate muda o tamanho das colunas mas sempre ficam todos do mesmo tamanho.
valeu pela ajuda…vou desistir por enquanto disso
castiel
É que na verdade o pouco que eu sei de java é SWT e não swing, dai eu fico meio que perdido, ele são um pouco diferentes, no swt o que eu iria fazer, pegar todas das colunas da tabela, iterar e ir alterando o tamanho com o setwidth. no swt o método ficaria assim: