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

problema con los getSelectedIndex() de un JComboBox

Estas en el tema de problema con los getSelectedIndex() de un JComboBox en el foro de Java en Foros del Web. hoal de antemano gracias a todos los q contesten a esta pregunta , la duda o mejor dicho el problema q tengo es q tengo ...
  #1 (permalink)  
Antiguo 16/07/2008, 21:22
Avatar de cesmichael  
Fecha de Ingreso: julio-2008
Mensajes: 207
Antigüedad: 15 años, 9 meses
Puntos: 0
Busqueda problema con los getSelectedIndex() de un JComboBox

hoal de antemano gracias a todos los q contesten a esta pregunta , la duda o mejor dicho el problema q tengo es q tengo un JCombobox al cual le asigando un evento ActionPerformed. yo trabajo con el netbeanas 6.1 dodn es mas facil asiganrle eventos a los swing.
bueno tngo este codio en el cual al llamar al proucirse el evento ActionPerformed hago uan compracion de acuerdo al indice seleccionado del combobox y de acuerdo a eso agrego un panel al JinternalFrame . miren aki les dejo el codigo

private void tipoActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
int pos=tipo.getSelectedIndex();
if(pos==0){

jPanel2.setVisible(false);
this.add(this.jPanel1);
jPanel1.setBounds(30, 50, 400, 90);
jPanel1.setVisible(true);
}
else{
jPanel1.setVisible(false);
this.add(this.jPanel2);
jPanel2.setBounds(30, 50, 400, 90);
jPanel2.setVisible(true);
}
}

bueno el problema es qa la primera clickeada no funciona tngo q dar una segunda o una tercera esto sucede casi siempre con los ActionPerformed que implemento de esta manera es decir haciendo una toma de decisiones de acuerdo al indice seleccionado. no funciona a la primera clickeada alguien me puede decir porq o esq acaso no es el evento indicado el q utilizo . Es decir selecciono un elemento del combobox q supuestamente tien una posicion (supongamos la posicion cero) y no sucede nada tngo q hacer de una nuevo otra clickeada a veces me voy a la otra opcion y de ahi recien funciona la primera opcion (me refiero con primera opcion al evento al hacer clic en el elemento de la posicion cero)
  #2 (permalink)  
Antiguo 17/07/2008, 12:49
Avatar de djagu_26  
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 518
Antigüedad: 16 años, 3 meses
Puntos: 6
Respuesta: problema con los getSelectedIndex() de un JComboBox

cuando creas la ventana has combo.setSelectedIndex(-1); va a aparecer seteado en blanco cuando cambies por primera vez la linea te va a funcionar

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

A/P Agustin Sivoplas
[email protected]
  #3 (permalink)  
Antiguo 17/07/2008, 17:26
Avatar de cesmichael  
Fecha de Ingreso: julio-2008
Mensajes: 207
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: problema con los getSelectedIndex() de un JComboBox

bueno gracias por tu ayuda pero he encontrado una nueva solucion y también he encontrado nuevas dudas

mira el codigo qu he puesto esta vez no llamo al evento ActionPerformed sino al ItemStateChange:

private void tipoItemStateChanged(java.awt.event.ItemEvent evt) {
// TODO add your handling code here:
if(evt.getStateChange()==ItemEvent.SELECTED){
int pos=tipo.getSelectedIndex();
if(pos==0){

System.out.println("Objeto 1");
jPanel2.setVisible(false);
this.add(jPanel1);
jPanel1.setBounds(30, 50, 400, 90);
jPanel1.setVisible(true);
}
if(pos==1){

System.out.println("Objeto 2");
jPanel1.setVisible(false);
this.add(jPanel2);
jPanel2.setBounds(30, 50, 400, 90);
jPanel2.setVisible(true);
}

}
}
como veras loq kiero hacere es qu de acuerdo al indice seleccionado me agregue un panel al frame(para sr mas especificos a un JInternalFrame) buneo el problema como dije era que cuando hacia clic en la primera opcion no Hacia las operaciones que estaban diseñadas para ese indice (el cero pues el primero). solo cuando iba defrente a la segunda opcion ahi recien realizaba las operaciones definidas para ese indice. Bueno esto lo solucione de la siguiente manera como el indice siempre aparece inicializado en cero entonces agregue el jPanel1 al frmae desde el comienzo , de este modo si alguien hacia clic en la primera opcion se tndria al jPanel1 agregado al JInternalFrame y si iba a a la segunda agregaría el jPanel2 y de este modo solucione este problema.
Pero han surgido otras dudas, si ven el codigo sobre toda esta parte:
if(evt.getStateChange()==ItemEvent.SELECTED) segun loq io h entendido es que si el evento que se da es un cambio es decir se cambia de opcion entonces entrara a esta opcion es decir se cambia de estado a otro estado seleccionado (por eso esta el ItemEvent), pero cuando seleccionamso el primer elemento no estamos cambiando de estado , pues sigue en el primero ahora io no se que codigo poner para decirle si es q el estado no cambia, uan soplucion seria poner el combobox asi no: jCombobox1.setSelectedIndex(-1); para que aparesca en blanco y ahi si al seleccionar la primera opocion cambiariamos de estado. y entonces si se podria entrar a las operacionse definidas para el primer indice.

Bueno les pido disculpas por si mi interpretacion de este tipo d eventos no se ala adecuada es que este lo sake de un program que habia en internet y ahi trabajaba con este evento para hacer operaciones de acuerdo a los indices seleccionados del combobox y bueno trate dedarle una interpretacion deacuerdo a la documentacion que encontre espero que sigan rspondiendo pero esta vez para explicar esto de los Itemevents y sus metodos o mejor dicho para dar una mejor explicacion a esta validacion:
if(evt.getStateChange()==ItemEvent.SELECTED)

agradesco de antemano sus aportes
  #4 (permalink)  
Antiguo 17/07/2008, 18:02
Avatar de cesmichael  
Fecha de Ingreso: julio-2008
Mensajes: 207
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: problema con los getSelectedIndex() de un JComboBox

Oie acabo de probar ese del setSelectedIndex(-1); i si pues al hacer clic sobre el primer elmento del combobox hace las operaciones definidas para su indice. Pero hay un problema: que cuando agrega el panel no lo muestra inmediatamnete tngo que minimizar la ventana del farme y recien se dan los cambios mostrandose el panel agregado al JInternalFrame , e dcir tngo q minimizar o mover el frame para q hagan efectos el agregado del panel
aca t dejo el codigo por cierto estoy trabajando con el netbeans 6.1

private void tipoItemStateChanged(java.awt.event.ItemEvent evt) {
// TODO add your handling code here:
if(evt.getStateChange()==ItemEvent.SELECTED){
int pos=tipo.getSelectedIndex();
if(pos==0){

System.out.println("Objeto 1");
jPanel2.setVisible(false);
this.add(jPanel1);
jPanel1.setBounds(30, 50, 400, 90);

jPanel1.setVisible(true);
}
if(pos==1){

System.out.println("Objeto 2");
jPanel1.setVisible(false);
this.add(jPanel2);
jPanel2.setBounds(30, 50, 400, 90);
jPanel2.setVisible(true);
}

}


}


Creo el problema ees en el add();
es qno se mu biern como utilizar este metodo porq hay otros metodos que tienen 2 o 3 parametros los cuales no se como utilizarlos .
bueno ahi va otra uda espero me ayudan a resolverla
deantemano gracias atodos sus aportes

Última edición por cesmichael; 17/11/2008 a las 21:50
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:53.