Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/11/2015, 08:13
maurikius1983
Usuario no validado
 
Fecha de Ingreso: abril-2012
Mensajes: 134
Antigüedad: 12 años, 8 meses
Puntos: 0
Recuperar valor de un jlist con doble click

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);

    }