Olá pessoal,
preciso preencher um Jlist com um método Listar(), o qual retorna uma lista como abaixo:
Classe Dao -
public List Listar() throws SQLException{
PreparedStatement stmt = this.connection.prepareStatement(“Select idCategoria, Descricao from tbCategoria”);
ResultSet resultado = stmt.executeQuery();
List listcat = new ArrayList<>();
while (resultado.next()){
Categoria cat = new Categoria();
cat.setIdCategoria(resultado.getInt(“idCategoria”));
cat.setDescricao(resultado.getString(“descricao”));
listcat.add(cat);
}
resultado.close();
stmt.close();
return listcat;
}
Classe Model -
public List Listar() throws SQLException { //retorna a lista de todos os Categoria
CategoriaDAO catdao = new CategoriaDAO();
List listcat = catdao.Listar();
return listcat;
}
Classe da Tela - JFrame
final JList listCategoria = new JList();
listCategoria.setVisibleRowCount(0);
listCategoria.setBorder(new BevelBorder(BevelBorder.LOWERED, null, null, null, null));
panel.add(listCategoria);
JButton btnSalvar = new JButton("SALVAR");
btnSalvar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
CategoriaModel cat = new CategoriaModel();
Categoria categoria = new Categoria();
categoria.setDescricao(txtDescricao.getText());
try{
cat.adicionar(categoria);
JOptionPane.showMessageDialog(null, "Salvo com sucesso");
CategoriaModel model = new CategoriaModel();
DefaultListModel<Categoria> defa = new DefaultListModel<>();
defa.addElement((Categoria) model.Listar());
listCategoria.setSelectedValue(defa, true);
}catch(Exception erro){
JOptionPane.showMessageDialog(null, erro.getMessage());
}
}
});
com o código assim ele aparece um erro : java.util.ArrayList cannot be cast Classe.Categoria…
Gostaria que o Jlist preenche -se com as informações da consulta SQL…
Alguém pode me ajudar… muito obrigada