Java - JTable y doble click

 
Vista:
sin imagen de perfil
Val: 111
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

JTable y doble click

Publicado por gonzalo (112 intervenciones) el 11/07/2016 19:14:30
encontre este codigo que funciona bien, pero tengo el problema de que necesito que se active cuando de 2 clicks en un renglon de una tabla.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
TabEjemplo= new JTable();
 
... construimos la tabla
... agrego el evento click
 
    TabEjemplo.addMouseListener
    (
    	new MouseAdapter()
    	{
    		public void mouseClicked(MouseEvent evnt)
    		{
          if (evnt.getClickCount() == 1)
          {
          	System.out.println(TabEjemplo.getValueAt(TabEjemplo.getSelectedRow(), 0).toString());
          }
    		}
    	}
    );

pero funciona con 1 solo click, como lo puedo modificar para que funcione con doble click?

gracias, salu2.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 111
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

JTable y doble click

Publicado por gonzalo (112 intervenciones) el 11/07/2016 19:31:49
olvide mencionar:

al darle 2 click la tabla entra en modo de edicion.

hay manera de poner la table en modo no editable?

salu2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 111
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

JTable y doble click

Publicado por gonzalo (112 intervenciones) el 11/07/2016 20:13:39
bueno, ya encontre la manera de eviar que editen los valores de la JTable, solo deben modificar el defaulttablemodel

1
2
3
4
5
6
7
8
ModEjemplo= new DefaultTableModel(Datos,ColumnNames)
{
    @Override
    public boolean isCellEditable(int row, int column)
    {
    	return false;
    }
};

con esto te permite seleccionar una celda pero no permite que editen el valor de la celda al dar doble click.

con eso arreglo el problema del dobue click, asi que ya puedo generar el evento doble click para que me regrese el renglon seleccionado.

solo debo modifcar el getclickcount a mayor a 1 y listo.

1
2
3
4
if (evnt.getClickCount()> 1)
{
System.out.println(TabEjemplo.getValueAt(TabEjemplo.getSelectedRow(), 0).toString());
}

espero que el codigo les sea de ayuda.

salu2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de xve
Val: 686
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

JTable y doble click

Publicado por xve (345 intervenciones) el 12/07/2016 09:03:03
Gracias por compartirlo!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

JTable y doble click

Publicado por José ruiz (2 intervenciones) el 01/03/2019 20:53:09
Muchas gracias x el aporte me sirvió mucho soy muy nuevo en Java y día a día voy aprendiendo más, a través de esta respuesta logré seleccionar el valor del campo del jtable y hacer la consulta a la DB p mostrar info en un jFrame
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

JTable y doble click

Publicado por Javier Lopez Vargas (10 intervenciones) el 16/07/2016 14:53:55
hola yo lo he hecho de la siguiente manera, espero te sirva
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
private void jtCentralMouseClickedinitial() throws SQLException{
        //Realiza la accion del metodo de arriba pero al inicio
       try
       {
           filac = jtCentral.getSelectedRow();
           if (filac != -1)
           {
 
               lblID.setText(String.valueOf(jtCentral.getValueAt(filac, 0)));
               lblNum.setText(String.valueOf(jtCentral.getValueAt(filac, 1)));
               lblDateEntra.setText(String.valueOf(jtCentral.getValueAt(filac, 2)));
               lblCantidad.setText(String.valueOf(jtCentral.getValueAt(filac, 3)));
 
               lblTipo.setText(String.valueOf(jtEstado.getValueAt(fila,1)));
 
               this.idcentral = (int) jtCentral.getValueAt(filac, 0);
           }
       }
       catch(Exception ex)
       {
          Logger.getLogger(JIFrmSolSolicitudMaterial.class.getName()).log(Level.SEVERE, null, ex);
       }
    }
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar