Java - JTable y doble click

   
Vista:

JTable y doble click

Publicado por gonzalo (84 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

JTable y doble click

Publicado por gonzalo (84 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

JTable y doble click

Publicado por gonzalo (84 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

JTable y doble click

Publicado por xve (261 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 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