Bom dia Pessoal
Estou com o seguinte problema… o select do bd eu consigo fazer normalmente ate mesmo a inserção dos dados na JTable, so que os dados estao sendo inseridos da seguinte maneira(ainda não entendi o porque dos dados estarem ficando assim):
Eu tenho 5 clientes cadastrodos na tabela clientes, com 6 colunas!! qdo mando popular a JTable ele insere os 5 cadastros em cada coluna, ao invez de inserir nas linhas, ou seja ficam os 5 cadastros em cada colunas!!
Segue o código que estou usando:
MyTableModel
Public class MyTableModel extends AbstractTableModel
{
private ArrayList linhas = new ArrayList();
private String[] colunas = {"Aqui vai o nome das 6 colunas"};
public MyTableModel(ArrayList dados)
{
this.linhas = dados;
setLinhas(linhas);
setColunas(colunas);
}
public int getColumnCount()
{
return colunas.length;
}
public int getRowCount()
{
return linhas.size();
}
public Object getValueAt(int row, int col)
{
String linha = (String) getLinhas().get(row);
return linha;
}
public String getColumnName(int column)
{
return colunas[column];
}
public Class getColumnClass(int c)
{
switch(c)
{
case 0:
return Integer.class;
case 1:
return Integer.class;
case 2:
return String.class;
case 3:
return String.class;
case 4:
return String.class;
case 5:
return String.class;
case 6:
return String.class;
}
return String.class;
}
public boolean isCellEditable(int row, int col)
{
switch(col)
{
case 0:
return true;
case 1:
return true;
case 2:
return true;
case 3:
return true;
case 4:
return true;
case 5:
return true;
case 6:
return true;
}
return false;
}
public void setValueAt(Object aValue, int row, int column)
{
String linha = (String) getLinhas().get(row);
linha = (String) aValue;
fireTableCellUpdate(row, column);
}
public ArrayList getLinhas()
{
return linhas;
}
public String[] getColunas()
{
return colunas;
}
public void setLinhas(ArrayList list)
{
linhas = list;
}
public void setColunas(String [] column)
{
colunas = column;
}
}
Métodos usados para popular a JTable, estao em outra classe:
public ResultSet getDados()
{
try
{
stm = con.getStatement();
rs = stm.executeQuery("Aqui vai meu select");
}
catch(SQLException e)
{
e.printStackTrace();
}
return rs;
}
public void inserirDados(ResultSet rsDados)
{
try
{
ResultSetMetaData metaData = rsDados.getMetaData();
String [] colunas = new String[metaData.getColumnCount];
ArrayList linhas = new ArrayList();
while(rsDados.next())
{
for(int i = 0; i < colunas.length; i++)
{
linhas.add(rsDados.getString(i+1));
}
}
MyTableModel modelo = new MyTableModel(linhas);
MinhaTabela.setModel(modelo);
TableRowSorter sorter = new TableRowSorter(modelo);
MinhaTable.setRowSorter(sorter);
}
catch(SQLException e)
{
System.out.println(e);
}
}
Edit: Acabei esquecendo de colocar a minha duvida :shock:
gostaria de saber o que eu estaria fazendo errado? que ao inves de popular a JTable linha por linha, esta populando tudo nas colunas!!!
Desde já agradeço!!