Olá pessoal, tudo bem? estou criando uma aplicação que necessita mostrar alguns elementos registrados em uma lista, que mostrarei através do DefaultListModel. Infelizmente dentro da aplicação ele reconhece os elementos que foram inseridos mas não como deveria, já que ele não mostra o nome do elemento mas sim o caminho da entidade, queria saber como faço pro DeufaltListModel reconhecer meu objeto e os elementos dentro dele como tipo String, não como código aleatório.
package sistema.telas;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.DefaultListModel;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import sistema.BancoDeDados;
import sistema.entidades.Cargo;
public class CargosConsultar extends JPanel{
Cargo cargoAtual;
JLabel labelTitulo,labelCargo;
JTextField campoCargo;
JButton botaoPesquisar,botaoEditar,BotaoExcluir;
DefaultListModel listaCargosModelo = new DefaultListModel<>();
JList listaCargos;
public CargosConsultar ()
{
criarComponentes();
criarEventos();
}
private void criarComponentes() {
setLayout(null);
labelTitulo = new JLabel("Consulta de Cargos", JLabel.CENTER);
labelTitulo.setFont(new Font(labelTitulo.getFont().getName(), Font.PLAIN, 20));
labelCargo = new JLabel("Nome do Cargo",JLabel.LEFT);
campoCargo = new JTextField();
botaoPesquisar = new JButton("Pesquisar Cargo");
botaoEditar = new JButton("Editar");
botaoEditar.setEnabled(false);
BotaoExcluir = new JButton("Excluir");
BotaoExcluir.setEnabled(false);
listaCargosModelo = new DefaultListModel<>();
listaCargos = new JList();
listaCargos.setModel(listaCargosModelo);
listaCargos.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
labelTitulo.setBounds(20,20,660,40);
labelCargo.setBounds(150,120,400,20);
campoCargo.setBounds(150,140,400,40);
botaoPesquisar.setBounds(560,140,130,40);
listaCargos.setBounds(150,200,400,240);
botaoEditar.setBounds(560,360,130,40);
BotaoExcluir.setBounds(560,400,130,40);
add(labelCargo);
add(labelTitulo);
add(campoCargo);
add(botaoPesquisar);
add(listaCargos);
add(botaoEditar);
add(BotaoExcluir);
setVisible(true);
}
private void criarEventos() {
botaoPesquisar.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
sqlPesquisarCargos(campoCargo.getText());
}
});
botaoEditar.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
}
});
BotaoExcluir.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
}
});
listaCargos.addListSelectionListener(new ListSelectionListener() {
@Override
public void valueChanged(ListSelectionEvent e) {
cargoAtual = listaCargos.getSelectedValue();
if(cargoAtual == null)
{
botaoEditar.setEnabled(false);
BotaoExcluir.setEnabled(false);
}
else
{
botaoEditar.setEnabled(true);
BotaoExcluir.setEnabled(true);
}
}
});
}
private void sqlPesquisarCargos(String nome)
{
//CONEXÃO
Connection conexao;
//INSTRUÇÃO SQL
Statement instrucaoSQL;
//RESULTADOS
ResultSet resultados;
try {
//conectando no banco de dados
conexao = DriverManager.getConnection(BancoDeDados.URL_CONEXAO,BancoDeDados.USUARIO,BancoDeDados.SENHA);
//criando a instrução SQL
instrucaoSQL = conexao.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
resultados = instrucaoSQL.executeQuery("SELECT * FROM cargo WHERE nome like '%"+nome+"%'");
listaCargosModelo.clear();
while (resultados.next())
{
Cargo cargo = new Cargo();
cargo.setId(resultados.getInt("id"));
cargo.setNome(resultados.getString("nome"));
listaCargosModelo.addElement(cargo);
System.out.println("nome"+ cargo.getNome());
}
}
catch (SQLException ex) {
JOptionPane.showMessageDialog(null, "Ocorreu um erro ao consultar os cargos");
Logger.getLogger(CargosInserir.class.getName()).log(Level.SEVERE,null,ex);
}
}
}