elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Cómo seleccionar una fila de un JTable de Java
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Cómo seleccionar una fila de un JTable de Java  (Leído 10,703 veces)
soy_nicanor

Desconectado Desconectado

Mensajes: 88


Ver Perfil
Cómo seleccionar una fila de un JTable de Java
« en: 19 Enero 2015, 00:48 am »

Quiero seleccionar datos de la tabla con teclas de navegación y a la ves buscar en la caja, así como se ve en este imagen:
Ejemplo:


Encontré este pagina pero no puedo adaptarlo en mi código:
http://jedicerocool.blogspot.com/2011/01/como-seleccionar-una-fila-de-un-jtable.html#.VLxGIdJhkrT

Código Java:
Código
  1. String ele = txtElemento.getText();
  2.  
  3.        for (int i = 0; i < tbComponentes.getRowCount(); i++) {
  4.            if (tbComponentes.getValueAt(i, 1).equals(ele)) {
  5.                tbComponentes.changeSelection(i, 1, false, false);
  6.                break;
  7.            }
  8.        }
  9.  

Como podría hacerlo funcionar, estoy sacando datos de mysql en una tabla.

Mod: Movido a Java


« Última modificación: 19 Enero 2015, 02:57 am por engel lex » En línea

Usuario Invitado


Desconectado Desconectado

Mensajes: 625



Ver Perfil
Re: Cómo seleccionar una fila de un JTable de Java
« Respuesta #1 en: 20 Enero 2015, 15:59 pm »

Para lo primero se me ocurre algo así:

Código
  1. // Listen for changes in the text
  2. textField.getDocument().addDocumentListener(new DocumentListener() {
  3.  public void changedUpdate(DocumentEvent e) {
  4.    searchCoincidences();
  5.  }
  6.  
  7.  public void searchCoincidences() {
  8.    String text = textField.getText();
  9.    for (int count = 0; count < model.getRowCount(); count++)
  10.    {
  11.      if(model.getValueAt(count, 0).toString().indexOf(text) != -1)
  12.      {
  13.        hightlightRow(count);
  14.      }
  15.    } // [end for]
  16.  } // [end method]
  17.  
  18. });
  19.  
  20. public void highlightRow(rowIndex)
  21. {
  22.  // tienes que aplicar un table rendering para cambiar el color de la fila
  23. }

Para lo segundo, lee un poco sobre eventos de teclado y lo conseguirás.


En línea

"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein
soy_nicanor

Desconectado Desconectado

Mensajes: 88


Ver Perfil
Re: Cómo seleccionar una fila de un JTable de Java
« Respuesta #2 en: 21 Enero 2015, 21:26 pm »

Que significa esto, Que va aquí:

Código
  1. hightlightRow(count);
  2.  
En línea

Usuario Invitado


Desconectado Desconectado

Mensajes: 625



Ver Perfil
Re: Cómo seleccionar una fila de un JTable de Java
« Respuesta #3 en: 21 Enero 2015, 21:51 pm »

Dicho método recibe el índice de la fila donde se ha encotrado coincidencias con el texto buscado. Una vez pasado el número de fila, el método se encarga de resaltar la fila por medio de un rendering.
En línea

"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein
soy_nicanor

Desconectado Desconectado

Mensajes: 88


Ver Perfil
Re: Cómo seleccionar una fila de un JTable de Java
« Respuesta #4 en: 22 Enero 2015, 18:31 pm »

Lo estoy desarrollando en Netbeans
El código lo tengo en el botón Buscar:
No me funciona

Código
  1. package borrar3;
  2. import javax.swing.table.DefaultTableModel;
  3. import BD.Conexion;
  4. import java.awt.event.KeyAdapter;
  5. import java.awt.event.KeyEvent;
  6. import java.sql.*;
  7. import javax.swing.JOptionPane;
  8.  
  9. public class Formulario extends javax.swing.JFrame {
  10.    DefaultTableModel modelo;
  11.  
  12.    /** Creates new form Formulario */
  13.    public Formulario() {
  14.        initComponents();
  15.  
  16.    }
  17.  

Código
  1. private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                        
  2.  
  3.        String valor = jTextField1.getText();
  4.  
  5.        String[] titulos = {"ID", "Codigo", "Articulo", "cantidad", "precio S/:"};
  6.        String[] registro = new String[5];
  7.        String sSQL = "";
  8.        modelo = new DefaultTableModel(null, titulos);
  9.  
  10.        Conexion mysql = new Conexion();
  11.        Connection cn = mysql.Conectar();
  12.  
  13.        sSQL = "SELECT id, codigo, articulo, cantidad, precio FROM articulos " +
  14.                "WHERE CONCAT(codigo, ' ',articulo) LIKE '%"+valor+"%'";
  15.        try
  16.        {
  17.            Statement st = cn.createStatement();
  18.            ResultSet rs = st.executeQuery(sSQL);
  19.  
  20.            while(rs.next())
  21.            {
  22.                registro[0] = rs.getString("id");
  23.                registro[1] = rs.getString("codigo");
  24.                registro[2] = rs.getString("articulo");
  25.                registro[3] = rs.getString("cantidad");
  26.                registro[4] = rs.getString("precio");
  27.                modelo.addRow(registro);
  28.            }
  29.  
  30.            for (int i = 0; i < jTable1.getRowCount(); i++)
  31.            {
  32.                if (jTable1.getValueAt(i, 1).equals(valor))
  33.                {
  34.                    jTable1.changeSelection(i, 1, false, false);
  35.                    break;
  36.                }
  37.            }
  38.  
  39.  
  40.        }
  41.        catch (SQLException ex)
  42.        {
  43.            JOptionPane.showMessageDialog(null, ex);
  44.        }
  45.  
  46.    }
  47.  


En línea

Usuario Invitado


Desconectado Desconectado

Mensajes: 625



Ver Perfil
Re: Cómo seleccionar una fila de un JTable de Java
« Respuesta #5 en: 22 Enero 2015, 22:48 pm »

Por lo que veo, estás buscando coincidencias por medio del botón buscar. Pensaba que era por un evento de cambio a medida que se escribe en el JTextField. De la manera como lo planteas ahora, es mucho más sencillo.

¿Todos tus campos en la BBDD son varchar, incluyendo código, precio y cantidad?

¿Qué tipo de excepción te da? En el catch coloca ex.printStackTrace() para que haga un rastreo de pila y dar más fácilmente con el problema.
En línea

"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema Con Selección De Fila En Jtable Y Evento « 1 2 »
Java
ZedGe 12 15,393 Último mensaje 24 Noviembre 2011, 18:57 pm
por Leyer
Eliminar Fila De Jtable(Jtabla Sin Model)
Java
ZedGe 4 5,413 Último mensaje 29 Noviembre 2011, 23:35 pm
por ZedGe
Seleccionar una fila de un array en C
Programación C/C++
folostia 6 6,203 Último mensaje 15 Enero 2012, 18:25 pm
por rir3760
Seleccionar fila DatagridView VB.NET[SOLUCIONADO]
.NET (C#, VB.NET, ASP)
Yaldabaot 5 19,013 Último mensaje 23 Mayo 2013, 21:26 pm
por XresH
JTable: Seleccionar Fila Y Mostrar Los Datos En Componentes JTextField
Java
Skar.2007 1 3,319 Último mensaje 10 Abril 2015, 21:03 pm
por Usuario Invitado
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines