Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] Recuperar valor de un jlist con doble click

Estas en el tema de Recuperar valor de un jlist con doble click en el foro de Java en Foros del Web. Buenas tardes, tengo montado un buscador de clientes en un jlist, os detallo mi consulta: 1 - Tengo un jbutton que captura el valor de ...
  #1 (permalink)  
Antiguo 21/11/2015, 08:13
Usuario no validado
 
Fecha de Ingreso: abril-2012
Mensajes: 134
Antigüedad: 12 años
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);

    }
  #2 (permalink)  
Antiguo 21/11/2015, 17:01
Usuario no validado
 
Fecha de Ingreso: abril-2012
Mensajes: 134
Antigüedad: 12 años
Puntos: 0
Respuesta: Recuperar valor de un jlist con doble click

Solucionado, he añadido un boton y capturo el item seleccionado.
os dejo el código

Código:
        btnSelectCustomer.addActionListener((new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                // Asigno al label el valor de la lista seleccionado
                lblCustomer.setText(listCustomer.getSelectedValue().toString());
                jdCustomer.dispose();
            }
        }));

Etiquetas: doble, jlist, metodo, sql, string, valor
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:00.