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

Doble clic en tabla

Estas en el tema de Doble clic en tabla en el foro de Java en Foros del Web. Hola, buenas tardes!! Tengo en mi aplicación una tabla que carga los datos de una base de datos, dicha tabla según las operaciones va cambiando. ...
  #1 (permalink)  
Antiguo 26/03/2008, 09:33
 
Fecha de Ingreso: septiembre-2007
Mensajes: 106
Antigüedad: 16 años, 8 meses
Puntos: 1
Doble clic en tabla

Hola, buenas tardes!!
Tengo en mi aplicación una tabla que carga los datos de una base de datos, dicha tabla según las operaciones va cambiando.
Pues el problema que tengo es que me gustaría al hacer doble clic sobre una fila o registro de la tabla, se abriera una nueva ventana con los datos completos de dicha fila.
Un saludo y gracias!!
  #2 (permalink)  
Antiguo 26/03/2008, 12:17
Avatar de djagu_26  
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 518
Antigüedad: 16 años, 3 meses
Puntos: 6
Re: Doble clic en tabla

lo haces en el evento mouse pressed de la tabla aca te pongo un ejemplo q tengo yo

private void tablaIngresosMousePressed(java.awt.event.MouseEven t evt) {//GEN-FIRST:event_tablaIngresosMousePressed
// TODO add your handling code here:
if (evt.getClickCount() == 2) {
Session sesion = HibernateUtil.getSessionFactory().getCurrentSessio n();
sesion.beginTransaction();
Long id = (Long) tablaIngresos.getValueAt(tablaIngresos.getSelected Row(), 0);
Rango r = (Rango) sesion.createQuery("Select r from Rango r where r.idRango=:id").setParameter("id", id).uniqueResult();

if (r != null) {
VentanaAgregarRango v = new VentanaAgregarRango(r, true, true, this);
v.setLocationRelativeTo(null);
v.setVisible(true);
}else{
JOptionPane.showMessageDialog(null, "Debe guardar el descuento para poder modificar el rango.");
}
sesion.getTransaction().commit();
}

}//GEN-LAST:event_tablaIngresosMousePressed

saludos
__________________
"La magia no existe, la programacion si"

A/P Agustin Sivoplas
[email protected]
  #3 (permalink)  
Antiguo 27/03/2008, 03:17
 
Fecha de Ingreso: septiembre-2007
Mensajes: 106
Antigüedad: 16 años, 8 meses
Puntos: 1
Re: Doble clic en tabla

Muchas gracias!!!
Ya me funciona correctamente
Otra cosa, sabes cómo puedo poner para que no se pueda editar ninguna celda de la tabla?
Un saludo y gracias
  #4 (permalink)  
Antiguo 27/03/2008, 12:55
Avatar de djagu_26  
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 518
Antigüedad: 16 años, 3 meses
Puntos: 6
Re: Doble clic en tabla

mira te debes crear un model propio te dejo un ejemplo aqui

public class MyTableModel extends DefaultTableModel{


/** Creates a new instance of MyTableModel */
public MyTableModel() {

}

public boolean isCellEditable(int row, int column) {
return false;
}

}

luego cuando vas a declarar un model en vez de hacer

DefaultTableModel modelo= new DefaultTableModel ();

haces

MyTableModel modelo=new MyTableModel ();

y tiene las mismas funcionalidades q el default solo q las filas no se pueden editar
saludos
__________________
"La magia no existe, la programacion si"

A/P Agustin Sivoplas
[email protected]
  #5 (permalink)  
Antiguo 31/03/2008, 04:30
 
Fecha de Ingreso: septiembre-2007
Mensajes: 106
Antigüedad: 16 años, 8 meses
Puntos: 1
Re: Doble clic en tabla

Hola!!
El problema es que como voy la tabla se va a cargar de base de datos, no sé cuántas filas voy a tener, igual pueden ser 2 que cien.
Un saludo
  #6 (permalink)  
Antiguo 01/04/2008, 07:40
Avatar de djagu_26  
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 518
Antigüedad: 16 años, 3 meses
Puntos: 6
Re: Doble clic en tabla

claro ese ejemplo no te deja modificar ninguna fila por mas q tengas 2 o 2000 ya que cuando el usuario hace coble click para editarlo el metodo isCellEditable retorna false, tu debes tener un MyTableModel por tabla no por fila,sino te queda claro pasame tu msn en un privado y te mando un ejemplo
saludos
__________________
"La magia no existe, la programacion si"

A/P Agustin Sivoplas
[email protected]
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 19:33.