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

jTable & doble click. Sombreado Azul.

Estas en el tema de jTable & doble click. Sombreado Azul. en el foro de Java en Foros del Web. Buenas a toda la comunidad. Siento que el titulo sea tan abstracto pero no encontré otro título más adecuado. El problema que tengo es simple ...
  #1 (permalink)  
Antiguo 20/03/2010, 19:31
 
Fecha de Ingreso: marzo-2010
Mensajes: 5
Antigüedad: 14 años, 1 mes
Puntos: 0
jTable & doble click. Sombreado Azul.

Buenas a toda la comunidad.

Siento que el titulo sea tan abstracto pero no encontré otro título más adecuado.

El problema que tengo es simple (al menos de explicar).

Tengo un jTable, al cual, para poder capturar los valueChanged events me cree mi propio Listener, que implemente TableModelListener. Todo esto va bien y funciona bien, como yo quiero que lo haga (y eso que hago conexiones a una BD, xD).

Bueno, el problema es que quiero que al hacer doble click en una celda, se autoseleccione el valor dentro de la celda (es decir se auto sombree en azul) para que el usuario sólo tenga que introducir el nuevo valor, borrando el viejo en el proceso. Vamos el típico selecciono (sombreo en azul) una palabra y "escribo encima" de la palabra seleccionada, el reemplazar de toda la vida.

La cuestión es que, al hacer doble click, no me hace dicho autosombreado en azul, y no encuentro ninguna ayuda al respecto en la red. Simplemente se me pone el cursor en la ultima posicion, y si escribo, se me añade, sin borrar el viejo valor.

Puesto que mis celdas son de Double, al hacer doble click me apara 0.0 (lógico) pero si escribo por ejemplo 100, el valor resultante sería 1000.0 (cosa que no quiero, yo quiero 100). Con lo que el usuario tiene que hacer un click más y arrastrar para seleccionar en azul dicho 0.0 para luego poder escribir 100.

Si no lo entienden, trataré de poner unas imágenes el el siguiente post.

De antemano, muxas gracias !!
  #2 (permalink)  
Antiguo 06/05/2010, 14:24
 
Fecha de Ingreso: mayo-2010
Mensajes: 1
Antigüedad: 14 años
Puntos: 0
Respuesta: jTable & doble click. Sombreado Azul.

lo que nesecitas hacer es un "cuadruple clik", 2 clicks son para seleccionar la celda (exactamente lo mismo que si precionaras F2), y otro doble clik para seleccionar todo.

si lo que quieres es que una ves estando en la celda seleccionada, y que cuando el usuario inicie a escribir un valor nuevo se borre el anterior, tendras que sobreescribir la forma en la que el JTable manipula el inicio de la edicion de una celda.....

Encontrar este codigo me llevo dias completos, pero cuando lo cale funciono de maravilla, lo comparto contigo, ya que no encontre nada similar en un foro en español.

Código Java:
Ver original
  1. JTable tabla = (new javax.swing.JTable() {
  2.  
  3.     public final static String EXCLUDE = "F2";
  4.  
  5.     private boolean isBlankEditor = false;
  6.  
  7.     @Override
  8.     public Component prepareEditor(TableCellEditor editor, int row, int column) {
  9.         Component c = super.prepareEditor(editor, row, column);
  10.  
  11.         if (isBlankEditor)
  12.         ((JTextField) c).setText("");
  13.  
  14.         return c;
  15.     }
  16.  
  17.     @Override
  18.     protected boolean processKeyBinding(KeyStroke ks, KeyEvent e, int condition, boolean pressed) {
  19.         if (! EXCLUDE.equals(KeyEvent.getKeyText(e.getKeyCode())))
  20.         isBlankEditor = true;
  21.  
  22.         boolean retValue = super.processKeyBinding(ks, e, condition, pressed);
  23.  
  24.         isBlankEditor = false;
  25.         return retValue;
  26.     }
  27.  
  28. });

si te fijas a la hora de crear el objeto, lo haces pero con una clase anonima con metodos sobre-escritos de la clase JTable......
no es que yo entienda a la perfeccion que es lo que paso.... por mas que busque no pude encontrar el codigo fuente de la clase JTable como para ver para que se usava cada cosa...... pero pues funciona y me saco del apuro (ayer.....)

Espero te allude este codigo.

Suerte!!!! :D
  #3 (permalink)  
Antiguo 06/05/2010, 18:56
 
Fecha de Ingreso: abril-2010
Mensajes: 9
Antigüedad: 14 años
Puntos: 0
Respuesta: jTable & doble click. Sombreado Azul.

Hola Tolke, yo en estos momentos estoy haciendo una tabla que se conecta a una BD en netbeans y tengo un problema el cual ya vos lo superaste,yo a la conexion de Bd la hice en otro paquete(es decir x un lado el frame de mi aplicacion y x otro la vista de mi BD) donde hice un frame para que albergue la tabla con mi campos( hasta ahi todo bien) pero 1.-yo quiero enlazar un boton para que me habra la tabla y me larga error y 2.-yo quiero ver la tabla es decir, hacer una actualizacion y ver lo que tengo, mi pregunta es como lo hago?porque la verdad que no se para donde rumbear.

Etiquetas: azul, doble, jtable
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 10:17.