Buenas tardes, tengo montado un buscador de clientes en un jlist, os detallo mi consulta:
1 - Tengo un jbutton que captura el valor de un jlabel con ActionListener(actionPerformed) para la consulta a la base de datos.
2 - En el evento ActionListener(actionPerformed) llamo a un metodo que lanza un jdialog,
3 - En el jdialog tengo un jlist con el resultado de la consulta realizada.
4 - Hata Aqui todo bien
5 - Aquí es donde tengo la consulta ¿como puedo recuperar el valor del jlist para ponerlo en un jlabel con double click?
6 - O paso el código
El buscador
Código:
private void initDataPanel() {
//Creo e instancio los componentes de los clientes
lblSearchCustomer = new JLabel("Buscar Cliente (DNI-Móvil)", SwingConstants.CENTER);
jtfCustomer = new JTextField("", 20);
btnSearchCustomer = new JButton("Buscar");
lblCustomer = new JLabel("", SwingConstants.CENTER);
// Añado el evento al boton
btnSearchCustomer.addActionListener((new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
searchConsumers();
}
}));
dataPanel = new JPanel();
dataPanel.setLayout(new GridLayout(1, 4, 10, 10));
dataPanel.add(lblSearchCustomer);
dataPanel.add(jtfCustomer);
dataPanel.add(btnSearchCustomer);
dataPanel.add(lblCustomer);
Jdialog emergente
Código:
void searchConsumers() {
// Creo el jdialogo
jdCustomer = new JDialog();
jdCustomer.setSize(460, 240);
jdCustomer.setLocationRelativeTo(null);
jdCustomer.setVisible(true);
// Creo un panel general para colocar la lista
jpCustomer = new JPanel();
jpCustomer.setLayout(new GridLayout(1, 1));
jpCustomer.setBorder(new EmptyBorder(20, 20, 20, 20)); // Borcer vacio como padding
// creo la lista
listCustomer = new JList();
txtSearchConsumer = jtfCustomer.getText();
modelListCustomer = new DefaultListModel();
listCustomer.setBorder(new EmptyBorder(10, 10, 10, 10)); // Borcer vacio como padding
scrollListCustomer = new JScrollPane(listCustomer);
scrollListCustomer.setViewportView(listCustomer);
// Creamos una conexion
conexion = new ConexionDatabase();
// conectamos
cnx = conexion.Connect();
// Creamos la consulta
String sql_search = "select * from person where person.dni = '" + txtSearchConsumer + "'";
// Lo ejecutamos y almaceno los vendedores en el combobox
try {
PreparedStatement ps = cnx.prepareStatement(sql_search);
ResultSet rs = ps.executeQuery(sql_search);
while (rs.next()) {
modelListCustomer.addElement(rs.getString(3) + " " + rs.getString(4) + " " + rs.getString(5));//nombre es el campo de la base de datos
}
listCustomer.setModel(modelListCustomer);
// Cierro la conexion
cnx.close();
} catch (Exception ex) {
JOptionPane.showMessageDialog(null, ex);
}
jpCustomer.add(scrollListCustomer);
jdCustomer.add(jpCustomer);
}