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?
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.
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 (int i = 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);
}
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);
ele ta pegando a primeira coluna, o primeiro numero do for que roda o i ( que é um argumento de n ints)
seta o tamanho da coluna x(que começa no zero), depois pega o proximo argumento do método, que seria o 300, e seta a coluna x+1, e assim vai…
Depois dispara fireTableStructureChanged();
EDIT:
chegando em casa vou tentar fazer o for pelas colunas invez de pelos argumentos do método…pode ser isso…
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
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
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.
É 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:
// os minha classe são para swt non swing.
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
//settando o tamanho nas colunas inicial
public void alteraTamanho(int tamanhoColunas) {
//TableColumn é as colunas do objeto Table
for (TableColumn tc : tbTeste.getColumns()) {
tc.setWidth(tamanhoColunas);
tamanhoColunas +=20;
}
}