Tudo certo gente? Impementei um método que trabalho com meu Jtable, preenchendo e organizando as colunas, o problema é que as colunas não ficam com o tamanho que eu coloco. Analisem meu código por favor, pra ver o que eu estou deixando de fazer… Obrigado.
//Método responsável por preencher o jTable da tela de Categoria
public int categoria(JTable table, String valor, String tipo)
{
//Instanciando um ResultSet com o retorno do método selectCategoria
ResultSet rs = servico.selectCategoria(valor, tipo);
//Definindo a seleção de apenas uma linha no Jtable
table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
//Declarando uma String com o nome das Colunas utilizadas no Jtable
String[] nomeColunasTabela = {"Código", "Nome"};
//Instanciando um modelo de Tabela passando como parâmetro um Object vazio e o nome das colunas
DefaultTableModel aModel = new DefaultTableModel(new Object[] []{ }, nomeColunasTabela)
{
//Sobrescrevendo o método isCellEditable para que o usuário não possa alterar as células do Jtable
public boolean isCellEditable(int row, int col)
{
return false;
}
};
//***** Verificar se é necessário isso aki
aModel.setColumnIdentifiers (nomeColunasTabela);
//Limpando todas as linhas do jTable
aModel.setNumRows(0);
//Criando uma interface para trabalhar com as células do jTable
DefaultTableCellRenderer renderer = new DefaultTableCellRenderer();
//Definindo o alinhamento das células do modelo como Centralizado
renderer.setHorizontalAlignment(SwingConstants.CENTER);
//Instanciando um modelo para colunas e pegando o modelo do jTable
TableColumnModel modelocoluna = table.getColumnModel();
//Definindo o modelo da coluna 0 do jTable
modelocoluna.getColumn(0).setCellRenderer(renderer);
//Definindo o tamanho da coluna 0 do jTable
modelocoluna.getColumn(0).setPreferredWidth(60);
//***** Esqueci o que é ....
Object[] retorno = new Object[2];
//Colocando o modelo no Jtable mesmo sem os dados, assim os nomes
// das colunas serão exibidos mesmo sem ter dado algum.
table.setModel(aModel);
//table.getColumn(1).setPreferredWidth(25);
try
{
if(rs == null || rs.next() == false )
{
return 0;
}
else
{
do
{
//concatena o código retorna com zeros
String zeros = "0000" + rs.getString(1);
//atribuindo o retorno do banco para o objeto retorno
retorno[0] = zeros.substring(zeros.length() - 4);
retorno[1] = rs.getString(2);
//Adicionando uma nova linha no modelo de jTable com os valores contidos em retorno
aModel.addRow(retorno);
}
while(rs.next());
//Definindo o modelo para o jTable passando todas as modificações feitas no modelo
table.setModel(aModel);
rs.close();
return 1;
}
}
catch(SQLException ex)
{
}
return 1;
}