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

Editar celdas en JTable

Estas en el tema de Editar celdas en JTable en el foro de Java en Foros del Web. Hola.. Necesito modificar las celdas de un jtable. El JTable tiene 3 columnas (codigo, nombre, cantidad). Lo que estoy tratando de hacer es que al ...
  #1 (permalink)  
Antiguo 05/07/2009, 12:07
 
Fecha de Ingreso: febrero-2007
Mensajes: 141
Antigüedad: 17 años, 2 meses
Puntos: 1
Editar celdas en JTable

Hola.. Necesito modificar las celdas de un jtable. El JTable tiene 3 columnas (codigo, nombre, cantidad). Lo que estoy tratando de hacer es que al hacer click en un JButton se aumente cantidad + 1 (porejemplo, si tengo 24 que le sume 1 y pase a 25) de la fila seleccionada. Yo tengo entendido que se hace con setValueAt pero no entiendo muy bien cómo utilizarlo. Si alguien me puede dar una manito, desde ya muchas gracias :)
  #2 (permalink)  
Antiguo 05/07/2009, 13:51
 
Fecha de Ingreso: septiembre-2008
Mensajes: 91
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Editar celdas en JTable

jTable1.setValueAt(valor, FILA, COLUMNA);
Te indica los siguientes campos:

valor: puede ser definido como cualquier tipo de variable, ya que se ese campo es de tipo Object y el Objecto acepta cualquier tipo de variable.

FILA: tiene que ser un int. Te indica el número de la fila, empezando desde cero.

COLUMNA: otro int. Te indica el número de la columna, empezando desde cero.


Por ejemplo, si utilizamos este código, algo sencillo pero sirve.

Código:
    int Valor = 0;

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
    Valor++;
    jTable1.setValueAt(Valor, 2, 0);
}
Clickeas el jButton1 y te aumenta el valor x 1.

Es poco pero espero te ayude.



ÉXITOS!!!

Última edición por dacarot; 05/07/2009 a las 14:22
  #3 (permalink)  
Antiguo 05/07/2009, 17:00
 
Fecha de Ingreso: febrero-2007
Mensajes: 141
Antigüedad: 17 años, 2 meses
Puntos: 1
Respuesta: Editar celdas en JTable

Cita:
Iniciado por dacarot Ver Mensaje
jTable1.setValueAt(valor, FILA, COLUMNA);
Te indica los siguientes campos:

valor: puede ser definido como cualquier tipo de variable, ya que se ese campo es de tipo Object y el Objecto acepta cualquier tipo de variable.

FILA: tiene que ser un int. Te indica el número de la fila, empezando desde cero.

COLUMNA: otro int. Te indica el número de la columna, empezando desde cero.


Por ejemplo, si utilizamos este código, algo sencillo pero sirve.

Código:
    int Valor = 0;

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
    Valor++;
    jTable1.setValueAt(Valor, 2, 0);
}
Clickeas el jButton1 y te aumenta el valor x 1.

Es poco pero espero te ayude.



ÉXITOS!!!
Claro, yo probe esto mismo pero lo que hace es tomar el valor de la celda como 0 y le suma 1, es decir.. por mas que en cantidad tengo valor 50, al apretar el boton me pone 1. Supongo que se tiene qe editar el int Valor = 0; pero no se bien como..
  #4 (permalink)  
Antiguo 06/07/2009, 09:44
 
Fecha de Ingreso: septiembre-2008
Mensajes: 91
Antigüedad: 15 años, 7 meses
Puntos: 0
De acuerdo Respuesta: Editar celdas en JTable

Código:
    String Valor = "DataChanged";
    int Nvalor = 0;
    int estatico;

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        estatico = 1;
        Valor = String.valueOf(jTable1.getValueAt(1, 0));
        Nvalor = Integer.parseInt(Valor) + estatico;
        jTable1.setValueAt(Nvalor, 1, 0);
}
No había entendido que era lo que necesitabas.

Este código trabaja sobre la misma celda. Creo que así era lo necesitabas...

Pero aqui está. Listo



ÉXITOS!!!

Última edición por dacarot; 06/07/2009 a las 10:17
  #5 (permalink)  
Antiguo 06/07/2009, 09:59
 
Fecha de Ingreso: septiembre-2008
Mensajes: 91
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Editar celdas en JTable

ÉXITOS!!! xD

Última edición por dacarot; 06/07/2009 a las 10:16 Razón: ÉXITOS!!!
  #6 (permalink)  
Antiguo 06/07/2009, 13:18
 
Fecha de Ingreso: febrero-2007
Mensajes: 141
Antigüedad: 17 años, 2 meses
Puntos: 1
Respuesta: Editar celdas en JTable

Cita:
Iniciado por dacarot Ver Mensaje
Código:
    String Valor = "DataChanged";
    int Nvalor = 0;
    int estatico;

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        estatico = 1;
        Valor = String.valueOf(jTable1.getValueAt(1, 0));
        Nvalor = Integer.parseInt(Valor) + estatico;
        jTable1.setValueAt(Nvalor, 1, 0);
}
No había entendido que era lo que necesitabas.

Este código trabaja sobre la misma celda. Creo que así era lo necesitabas...

Pero aqui está. Listo



ÉXITOS!!!
mmm, eso no es lo que necesito, lo que me dijiste anteriormente estaba bastante bien nada mas que tiene un solo error, osea..
Yo tengo el jtable que tiene las 3 filas.. necesito que al hacer click en un jbutton.. la cantidad de la celda 2 de la fila seleccionada incremente a +1... osea..
suponete que la celda tiene el numero 4.. cunado aprete sobre el jbutton, este numero suba a 5.. y asi sucesivamente..

lo que me pasaste anteriormente..

Código:
  int Valor = 0;

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
    Valor++;
    jTable1.setValueAt(Valor, 2, 0);
}
esto, se acerca bastante a lo que necesito, el problema de este codigo es que lo que hace mal es, ponerle 0 al numero de la celda y le suma 1.. osea.. el numero al apretar el jbutton siempre sera 1.
  #7 (permalink)  
Antiguo 06/07/2009, 14:03
 
Fecha de Ingreso: septiembre-2008
Mensajes: 91
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Editar celdas en JTable

Lo que tienes es un problema de lógia...

El primero que te pasé simplemente le suma uno las veces que clickeas el botón y lo imprime en una celda.

El segundo agarra lo que hay en una celda y le va sumando uno las veces que clickeas el botón.

Y parece que lo que ud quiere es seleccionar la celda aleatoreamente (dandole click por ejemplo) y luego le das click al botón y te incrementa el valor de esa celda.
Si es esto, eso se maneja con eventos.... Y ahora te lo paso.

Y si no es eso... vuelva a explicarme. Xq no le estoy captando la idea. Ando algo cerrado.

Última edición por dacarot; 06/07/2009 a las 14:13
  #8 (permalink)  
Antiguo 06/07/2009, 14:08
 
Fecha de Ingreso: febrero-2007
Mensajes: 141
Antigüedad: 17 años, 2 meses
Puntos: 1
Respuesta: Editar celdas en JTable

Cita:
Iniciado por dacarot Ver Mensaje
Lo que tienes es un problema de lógia...

El primero que te pasé simplemente le suma uno las veces que clickeas el botón y lo imprime en una celda.

El segundo agarra lo que hay en una celda y le va sumando uno las veces que clickeas el botón.

Y parece que lo que ud quiere es seleccionar la celda aleatoreamente (dandole click por ejemplo) y luego le das click al botón y te incrementa el valor de esa celda.
Si es esto, eso se maneja con eventos.... Y ahora te lo paso.

Y si no es eso... hagame un dibujo para ver si entiendo. Xq no le estoy captando la idea. Ando algo cerrado.
Si exacto, es eso lo que necesito.
  #9 (permalink)  
Antiguo 06/07/2009, 14:58
 
Fecha de Ingreso: febrero-2007
Mensajes: 141
Antigüedad: 17 años, 2 meses
Puntos: 1
Respuesta: Editar celdas en JTable

Espero tu respuesta :)
  #10 (permalink)  
Antiguo 06/07/2009, 15:08
 
Fecha de Ingreso: septiembre-2008
Mensajes: 91
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Editar celdas en JTable

Disculpa. Andaba haciendo unas cosas que me precisaban.

Código:
    
    String Valor = "";
    int Nvalor = 0;
    int estatico;
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        estatico = 1;
        //Se le asigna a Valor lo que hay en la celda seleccionada
        Valor = String.valueOf(jTable1.getValueAt(jTable1.getSelectedRow(), jTable1.getSelectedColumn()));
        
        //Se guarda en Nvalor el int que hay en Valor más 1
        Nvalor = Integer.parseInt(Valor) + estatico;
        
        //Se imprime en en la celda seleccionada el int más 1, es decir el Nvalor
        jTable1.setValueAt(Nvalor, jTable1.getSelectedRow(), jTable1.getSelectedColumn());        
}
Si no hay ningún integer en la celda seleccionada, el sistema te tira una excepción.

Fíjate bien en las propiedades que permite un JTable.
En este caso se usa la propiedad de la fila y columna seleccionadas.
Pero puede que necesites la fila y columna que se están editando, para hacer más complejo el programa que estés haciendo.
Y asi siguen las propiedades xD...

Espero que esto si sea. xD


ÉXITOS!!!

Última edición por dacarot; 06/07/2009 a las 15:18
  #11 (permalink)  
Antiguo 06/07/2009, 15:25
 
Fecha de Ingreso: febrero-2007
Mensajes: 141
Antigüedad: 17 años, 2 meses
Puntos: 1
Respuesta: Editar celdas en JTable

Cita:
Iniciado por dacarot Ver Mensaje
Disculpa. Andaba haciendo unas cosas que me precisaban.

Código:
    
    String Valor = "";
    int Nvalor = 0;
    int estatico;
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        estatico = 1;
        //Se le asigna a Valor lo que hay en la celda seleccionada
        Valor = String.valueOf(jTable1.getValueAt(jTable1.getSelectedRow(), jTable1.getSelectedColumn()));
        
        //Se guarda en Nvalor el int que hay en Valor más 1
        Nvalor = Integer.parseInt(Valor) + estatico;
        
        //Se imprime en en la celda seleccionada el int más 1, es decir el Nvalor
        jTable1.setValueAt(Nvalor, jTable1.getSelectedRow(), jTable1.getSelectedColumn());        
}
Si no hay ningún integer en la celda seleccionada, el sistema te tira una excepción.

Fíjate bien en las propiedades que permite un JTable.
En este caso se usa la propiedad de la fila y columna seleccionadas.
Pero puede que necesites la fila y columna que se están editando, para hacer más complejo el programa que estés haciendo.
Y asi siguen las propiedades xD...

Espero que esto si sea. xD


ÉXITOS!!!

Excelente, la verdad no se como agradecerte :) me sirvio muchisimo.
  #12 (permalink)  
Antiguo 06/07/2009, 15:35
 
Fecha de Ingreso: septiembre-2008
Mensajes: 91
Antigüedad: 15 años, 7 meses
Puntos: 0
De acuerdo Respuesta: Editar celdas en JTable

ah. Y eso no se manejaba con eventos como los que pensaba. Pero el apretar el botón sigue siendo un evento. My mistake...
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 08:09.