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

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  [?] JTable getSelectedRow() KeyEvent Retrasado (Solucionado)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [?] JTable getSelectedRow() KeyEvent Retrasado (Solucionado)  (Leído 10,022 veces)
AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.705


🏴 Libertad!!!!!


Ver Perfil WWW
[?] JTable getSelectedRow() KeyEvent Retrasado (Solucionado)
« en: 26 Febrero 2009, 19:21 pm »

Bien de nuevo yo con los JTables previamente [?] JTable Seleccion de Filas Mediante Codigo. (Solucionado), ahora tengo un error al momento de tratar de procesar la linea seleccionada.

Código
  1.    private void jtMouseClicked(java.awt.event.MouseEvent evt) {
  2.        this.Actualizar_Formulario();
  3.    }
  4.  
  5.    private void jtKeyPressed(java.awt.event.KeyEvent evt) {
  6.        this.Actualizar_Formulario();
  7.    }
  8.  
  9.    private void Actualizar_Formulario()    {
  10.        int i = jt.getSelectedRow();
  11.        System.out.println("Linea: " + i);
  12.    }
  13.  

Con el mouse todo va bien Selecciono la primera linea y me devuelve 0, la tercera me devuelve 2 etc.
pero con las flchas del teclado es diferente, estoy en la tercera fila y con la UP, me dice:

Citar
Linea: 2

Y la linea seleccionada es la Segunda (deberia de decir 1), le doy nuevamente UP, ahora:



Citar
Linea: 1

Y la linea seleccionada es la Primera (deberia de decir 0), le doy nuevamente UP

Citar
Linea: 0

Ahora eso si que desconseraria, ya que dependiendo de la fila en la tabla que se seleccione va a procesar la entrada, si es con el mouse no hay problema, pero si es con el teclado si y no deberia.

¿Que podria estar pasando?

Voy a agregar un filtro que verifique si es el campo ya lo habia validado pero eso es para despues de que se seleccione directamente la fila a procesar.

Creo que la cosa esta con el evento del key pero no tengo mucha experiencia en ello.

Saludos y Gracias de Antemano.




« Última modificación: 1 Marzo 2009, 05:28 am por Anon » En línea

~~
Ex-Staff
*
Desconectado Desconectado

Mensajes: 2.981


Ver Perfil WWW
Re: [?] JTable getSelectedRow() KeyEvent Retrasado
« Respuesta #1 en: 1 Marzo 2009, 00:57 am »

El problema está en el evento que usas, usa KeyReleased :P Como veo que usas NetBeans, aquí la prueba xD

Código
  1. import javax.swing.table.*;
  2.  
  3. public class Main extends javax.swing.JFrame
  4. {
  5.  
  6.    private DefaultTableModel datos = new DefaultTableModel();
  7.  
  8.    public static void main(String args[]) { new Main().setVisible(true); }
  9.    public Main()
  10.    {
  11.        initComponents();
  12.  
  13.        datos.addColumn("Nombre del plan");
  14.        datos.addColumn("Asignado");
  15.        datos.addRow(new Object[]{"A1", "xD"});
  16.        datos.addRow(new Object[]{"A2", "o.0"});
  17.        datos.addRow(new Object[]{"A3", ":P"});
  18.        jt.setModel(datos);
  19.    }
  20.  
  21.    private void Actualizar_Formulario()    {
  22.        int i = jt.getSelectedRow();
  23.        System.out.println("Linea: " + i);
  24.    }
  25.  
  26.    // <editor-fold defaultstate="collapsed" desc="Generated Code">
  27.    private void initComponents() {
  28.  
  29.        jScrollPane1 = new javax.swing.JScrollPane();
  30.        jt = new javax.swing.JTable();
  31.  
  32.        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
  33.  
  34.        jt.setModel(new javax.swing.table.DefaultTableModel(
  35.            new Object [][] {
  36.                {null, null, null, null},
  37.                {null, null, null, null},
  38.                {null, null, null, null},
  39.                {null, null, null, null}
  40.            },
  41.            new String [] {
  42.                "Title 1", "Title 2", "Title 3", "Title 4"
  43.            }
  44.        ));
  45.        jt.addKeyListener(new java.awt.event.KeyAdapter() {
  46.            public void keyPressed(java.awt.event.KeyEvent evt) {
  47.                jtKeyPressed(evt);
  48.            }
  49.            public void keyReleased(java.awt.event.KeyEvent evt) {
  50.                jtKeyReleased(evt);
  51.            }
  52.        });
  53.        jScrollPane1.setViewportView(jt);
  54.  
  55.        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
  56.        getContentPane().setLayout(layout);
  57.        layout.setHorizontalGroup(
  58.            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  59.            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
  60.                .addContainerGap(13, Short.MAX_VALUE)
  61.                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 375, javax.swing.GroupLayout.PREFERRED_SIZE)
  62.                .addContainerGap())
  63.        );
  64.        layout.setVerticalGroup(
  65.            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  66.            .addGroup(layout.createSequentialGroup()
  67.                .addContainerGap()
  68.                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 275, javax.swing.GroupLayout.PREFERRED_SIZE)
  69.                .addContainerGap(13, Short.MAX_VALUE))
  70.        );
  71.  
  72.        pack();
  73.    }// </editor-fold>
  74.  
  75. private void jtKeyReleased(java.awt.event.KeyEvent evt) {
  76.    Actualizar_Formulario();
  77. }
  78.  
  79. private void jtKeyPressed(java.awt.event.KeyEvent evt) {
  80.    //Actualizar_Formulario(); <-------- MAAAAL!!!
  81. }
  82.  
  83.  
  84.  
  85.  
  86.    // Variables declaration - do not modify
  87.    private javax.swing.JScrollPane jScrollPane1;
  88.    private javax.swing.JTable jt;
  89.    // End of variables declaration
  90.  
  91. }
  92.  

Salu2, E0N


« Última modificación: 1 Marzo 2009, 00:59 am por E0N » En línea

AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.705


🏴 Libertad!!!!!


Ver Perfil WWW
Re: [?] JTable getSelectedRow() KeyEvent Retrasado
« Respuesta #2 en: 1 Marzo 2009, 05:28 am »

A valla era el evento, me imaginaba que era por ahi pero no sabia que otros eventos utilizar.

Muchas Gracias E0N

Saludos.
En línea

~~
Ex-Staff
*
Desconectado Desconectado

Mensajes: 2.981


Ver Perfil WWW
Re: [?] JTable getSelectedRow() KeyEvent Retrasado (Solucionado)
« Respuesta #3 en: 1 Marzo 2009, 12:15 pm »

De nada. Si usas NetBeans haces click derecho sobre el JTable Events -> Key y ahí tienes todos los eventos disponibles ;)

Salu2, E0N
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
quitar filas de un jtable(SOLUCIONADO)
Java
basickdagger 1 8,804 Último mensaje 27 Marzo 2011, 20:02 pm
por basickdagger
[solucionado]Ayuda a la hora de introducir datos en un jtable
Java
juni85 2 4,235 Último mensaje 28 Octubre 2011, 11:03 am
por juni85
{SOLUCIONADO} JTable me repite datos de un ResultSet {SOLUCIONADO}
Java
|Miguel| 4 6,498 Último mensaje 3 Marzo 2012, 19:26 pm
por Proteus1989
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines