Boa tarde, estou com um problema para puxar do bd e jogar na jtable, estava fazendo tudo isso numa classe só e funcionava perfeitamente, entretanto estou tentando separar o codigo do bd do codigo da interface grafica.
Meu modelo da tabela;
[code]package programa;
import java.util.ArrayList;
import javax.swing.table.AbstractTableModel;
public class ConsultTableModel extends AbstractTableModel{
private ArrayList linhas = new ArrayList ();
private String [] colunas = null;
public String[] getColunas()
{
return colunas;
}
public ArrayList getLinhas()
{
return linhas;
}
public void setColunas(String[] strings)
{
colunas = strings;
}
public void setLinhas(ArrayList list)
{
linhas = list;
}
public int getColumnCount()
{
return getColunas().length;
}
public int getRowCount()
{
return getLinhas().size();
}
public Object getValueAt(int rowIndex, int columnIndex)
{
String [] linha = (String [])getLinhas().get(rowIndex); // o erro aponta pra essa linha
return linha[columnIndex];
}
@Override
public String getColumnName(int col)
{
return colunas[col];
}
public void addRow( ArrayList dadosLinha)
{
getLinhas().add(dadosLinha);
int linha = getLinhas().size()-1;
fireTableRowsInserted(linha,linha);
return;
}
public void LimpaConsult()
{
linhas.clear();
fireTableDataChanged();
}
public ConsultTableModel(String[] colunas){
setColunas(colunas);
}
public void AlterarColunas (String[] colunas)
{
setColunas(colunas);
fireTableStructureChanged();
}
public void setValueAt(Object OBJValues, int INTRow001, int INTCol001){
String [] STGLinhas = (String [])getLinhas().get(INTRow001);
STGLinhas[INTCol001] = (String)OBJValues;
fireTableCellUpdated(INTRow001,INTCol001);
}
public void removeRow(int row){
getLinhas().remove(row);
fireTableRowsDeleted(row,row);
}
}
[/code]
Classe Consulta
public void actionPerformed(ActionEvent e) {
if(e.getSource()==BtConsultar)
{
if(strTabela=="Computador")
{
table="Computador";
String[] colunas = new String[]{"Nome","Usuario","Setor","Configurações","Proprietário","Observação"};
AddTablePanel(colunas);
modelo.AlterarColunas(colunas);
modelo.LimpaConsult();
jtable.getColumnModel().getColumn(0).setPreferredWidth(100);
jtable.getColumnModel().getColumn(1).setPreferredWidth(100);
jtable.getColumnModel().getColumn(2).setPreferredWidth(175);
jtable.getColumnModel().getColumn(3).setPreferredWidth(220);
jtable.getColumnModel().getColumn(4).setPreferredWidth(90);
jtable.getColumnModel().getColumn(5).setPreferredWidth(250);
ComputadorDB a = new ComputadorDB();
modelo.addRow(a.Select("imigrantes"));
}
Classe onde eu faço o select e retorno o valor para adicionar na jtable.
[code]
public ArrayList Select (String Unidade)
{
ArrayList select = new ArrayList();
Conectar(“select nome,usuario,configuracao,setor,proprietario,observacao from Computador where unidade = ? order by nome” );
try
{
st.setString(1,Unidade);
rs=st.executeQuery();
while (rs.next())
{
EncapComputador temp = new EncapComputador();
/*
temp.setNome(rs.getString("nome"));
temp.setUsuario(rs.getString("usuario"));
temp.setConfiguracao(rs.getString("configuracao"));
temp.setSetor(rs.getString("setor"));
temp.setProprietario(rs.getString("proprietario"));
temp.setObservacao(rs.getString("observacao"));
select.add(temp);
EU ESTAVA TENTANDO FAZER DESSA MANEIRA /\ , MAS NAO FUNCIONOU TBM…
*/
select.add(rs.getString("nome"));
select.add(rs.getString("usuario"));
select.add(rs.getString("configuracao"));
select.add(rs.getString("setor"));
select.add(rs.getString("proprietario"));
select.add(rs.getString("observacao"));
}
return select;
} catch (SQLException e)
{
imprimeErro("Erro ao buscar Computador", e.getMessage());
return null;
}
}
[/code]
Alguem pode me ajudar o porque de acontecer esse erro?
[size=9] Exception in thread “AWT-EventQueue-0” java.lang.ClassCastException: java.util.ArrayList cannot be cast to [Ljava.lang.String;
at programa.ConsultTableModel.getValueAt(ConsultTableModel.java:42)
at javax.swing.JTable.getValueAt(Unknown Source)
at javax.swing.JTable.prepareRenderer(Unknown Source)
at javax.swing.plaf.basic.BasicTableUI.paintCell(Unknown Source)
at javax.swing.plaf.basic.BasicTableUI.paintCells(Unknown Source)
at javax.swing.plaf.basic.BasicTableUI.paint(Unknown Source)
at javax.swing.plaf.ComponentUI.update(Unknown Source)[/size]