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

Exception en un Jtable

Estas en el tema de Exception en un Jtable en el foro de Java en Foros del Web. Hola, bueno tengo una Exception en una JTable, creo un una ventana en la cual tengo un jtextfield en el cual ingreso un nombre y ...
  #1 (permalink)  
Antiguo 19/11/2010, 23:12
 
Fecha de Ingreso: octubre-2007
Mensajes: 24
Antigüedad: 16 años, 6 meses
Puntos: 0
Pregunta Exception en un Jtable

Hola, bueno tengo una Exception en una JTable, creo un una ventana en la cual tengo un jtextfield en el cual ingreso un nombre y me muestra todos los rut y nombres de los posibles clientes que busca, en el caso de que no se tenga el rut de la persona, a su ves agregue un botón buscas.

el problema se causa cuando te doy click al buscar y no hay nada seleccionado de el jtable.

Código:
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: -1
        at java.util.Vector.elementAt(Vector.java:430)
        at javax.swing.table.DefaultTableModel.getValueAt(DefaultTableModel.java:632)
        at javax.swing.JTable.getValueAt(JTable.java:2686)
        at InterfazeGrafica.IG_Cliente.btn_BuscarNombreActionPerformed(IG_Cliente.java:457)
Código PHP:
private void btn_BuscarNombreActionPerformed(java.awt.event.ActionEvent evt) {
// Busca los datos del cliente por el rut selecionado por el usuario
    
Object obj_rutNombre null;
    
obj_rutNombre t_RutNombre.getValueAt(t_RutNombre.getSelectedRow(), 0); 
t_RutNombre es el jTable

De antemano muchas gracias
  #2 (permalink)  
Antiguo 19/11/2010, 23:31
 
Fecha de Ingreso: octubre-2007
Mensajes: 24
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: Exception en un Jtable

No se mucho de Exception pero se que hay que tratarlas, ahora si yo pongo algo asi, me causara algún daño a ja ejecución del programa ??

Código PHP:
private void btn_BuscarNombreActionPerformed(java.awt.event.ActionEvent evt) {
    
// Busca los datos del cliente por el rut selecionado por el usuario
    
Object obj_rutNombre null;
    
String str_rutNombre null;
    
int int_rutNombre 0;
    try {
        
obj_rutNombre t_RutNombre.getValueAt(t_RutNombre.getSelectedRow(), 0);
    } catch (
Exception e) {
        
System.out.println(e);
        
JOptionPane.showMessageDialog(null"Seleccione un cliente""Aviso"JOptionPane.ERROR_MESSAGE);
    }
    if (
obj_rutNombre != null) {
        
str_rutNombre obj_rutNombre.toString();
        
int_rutNombre Integer.parseInt(str_rutNombre);
        if (
int_rutNombre != 0) { 

Última edición por MethoskO; 19/11/2010 a las 23:47
  #3 (permalink)  
Antiguo 20/11/2010, 13:44
Avatar de FiruzzZ  
Fecha de Ingreso: diciembre-2007
Ubicación: en casa
Mensajes: 470
Antigüedad: 16 años, 4 meses
Puntos: 41
Respuesta: Exception en un Jtable

Leé lo que dice la Javadoc de este método
.getSelectedRow()
Es bastante clara al respecto, cuando "no hay ninguna selected row" y lo que retorna en dicho caso
__________________
BadProgrammerException!
  #4 (permalink)  
Antiguo 20/11/2010, 14:18
 
Fecha de Ingreso: octubre-2007
Mensajes: 24
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: Exception en un Jtable

Cita:
Iniciado por FiruzzZ Ver Mensaje
Leé lo que dice la Javadoc de este método
.getSelectedRow()
Es bastante clara al respecto, cuando "no hay ninguna selected row" y lo que retorna en dicho caso
si tengo claro que no hay ni una fila seleccionada si yo mismo apretó l botón sin seleccionar una fila,

por eso me auto respondí, el hecho es si esta bien como trato la Exception, ya que no me asigna un null a obj_rutNombre, por eso puse el try catch
  #5 (permalink)  
Antiguo 20/11/2010, 15:51
Avatar de FiruzzZ  
Fecha de Ingreso: diciembre-2007
Ubicación: en casa
Mensajes: 470
Antigüedad: 16 años, 4 meses
Puntos: 41
Respuesta: Exception en un Jtable

si la exception que estás teniendo es ArrayIndexOutOfBoundsException
¿Por qué hacés esto?
} catch (Exception e) {
En vez de esto
} catch (ArrayIndexOutOfBoundsException e) {

Pueden surgir varios problemas (exceptions a futuro) y siempre vas a largar por pantalla el mismo mensaje: "Seleccione un cliente"

PD:Me sorprende tu hipocresía, siendo que acabás de postear un artículo que habla sobre la mala práctica de atrapar Exception's genéricas.
__________________
BadProgrammerException!
  #6 (permalink)  
Antiguo 20/11/2010, 16:07
 
Fecha de Ingreso: octubre-2007
Mensajes: 24
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: Exception en un Jtable

Cita:
Iniciado por FiruzzZ Ver Mensaje
si la exception que estás teniendo es ArrayIndexOutOfBoundsException
¿Por qué hacés esto?
} catch (Exception e) {
En vez de esto
} catch (ArrayIndexOutOfBoundsException e) {

Pueden surgir varios problemas (exceptions a futuro) y siempre vas a largar por pantalla el mismo mensaje: "Seleccione un cliente"

PD:Me sorprende tu hipocresía, siendo que acabás de postear un artículo que habla sobre la mala práctica de atrapar Exception's genéricas.
Recién estoy aprendiendo a tratar excepciones, estoy leyendo todo lo que puedo para poder hacer las cosas de la mejor forma, por lo mismo puse el código si estaba bien la solución o no.

Gracias por ayudar a comprender, creo que con buenas palabras todo andamos bien ...
  #7 (permalink)  
Antiguo 20/11/2010, 18:37
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años
Puntos: 306
Respuesta: Exception en un Jtable

ArrayIndexOutOfBoundsException es una RuntimeException

http://download.oracle.com/javase/1....Exception.html

Lo que viene a significar que es un error de código, lo recomendable es que evites esa exception mediante código, no con un try/catch.

En los enlaces que te he puesto en el otro hilo que has abierto, lo tienes explicado, aunque hay que reconocer que este es un tema bastante conceptual y complicado.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #8 (permalink)  
Antiguo 21/11/2010, 12:00
 
Fecha de Ingreso: octubre-2007
Mensajes: 24
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: Exception en un Jtable

Cita:
Iniciado por Xerelo Ver Mensaje
ArrayIndexOutOfBoundsException es una RuntimeException

[url]http://download.oracle.com/javase/1.4.2/docs/api/java/lang/ArrayIndexOutOfBoundsException.html[/url]

Lo que viene a significar que es un error de código, lo recomendable es que evites esa exception mediante código, no con un try/catch.

En los enlaces que te he puesto en el otro hilo que has abierto, lo tienes explicado, aunque hay que reconocer que este es un tema bastante conceptual y complicado.
si así me doy cuenta, he estado leyendo harto para poder comprender mas, cuesta asimilarlo rápido, de hecho voy a tener que revisar todo el software que he estado construyendo, ya que tenia varias exeption y bueno me doy cuenta que hay hartas cosas que no valide, así que tengo harta pega.

gracias por a ayuda
  #9 (permalink)  
Antiguo 21/11/2010, 12:46
 
Fecha de Ingreso: octubre-2007
Mensajes: 24
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: Exception en un Jtable

creo que ahora si.

Código Java:
Ver original
  1. //t_RutNombre es el jTable
  2. int int_rutNombre = t_RutNombre.getSelectedRow();
  3.     if (int_rutNombre > -1) {
  4.         obj_rutNombre = t_RutNombre.getValueAt(t_RutNombre.getSelectedRow(), 0);

Etiquetas: 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 16:54.