Autor
|
Tema: [Solucionado] Ordenar elementos de JCombobox (Leído 6,963 veces)
|
GenR_18
Desconectado
Mensajes: 115
|
Buen dia foreros. Resulta que tengo que ordenar los elementos de un JCombobox los cuales los inserto de un archivo de texto, pero cuando hago el sort de Arrays , no los ordena y no sé porqué try { while((lineas = buffer.readLine()) != null) { while(st.hasMoreTokens()) { cities_origen[i] = st.nextToken(); cities_destino[i] = st.nextToken(); //System.out.println(st.nextToken()); i++; } } { } /*for(int j=0; j<i; j++) { System.out.println(cities_origen[j]); }*/ entrada.close(); } { //System.out.println(file_e); } }
En cambio, si hago esto: String[] frutas = {"pera", "manzana", "melon", "ciruela"}; { }
Sí funciona, es la misma idea, pero en uno no sirve y en otro sí. ¿Alguien sabe cómo podría arreglar el problema? (ya he googleado y no doy con la solución). PD: Cuando obtengo los datos del archivo es todo correcto, por lo cual, por ahí no va el problema. Salu2!
|
|
« Última modificación: 17 Febrero 2015, 05:10 am por GenR_18 »
|
En línea
|
|
|
|
Usuario Invitado
Desconectado
Mensajes: 625
|
Trabaja con listas en lugar de arrays, así no tienes que controlar el índice. Prueba el siguiente código: public void fillComboBox (JComboBox cboCities ) { List<String> cities; try { cities = new ArrayList<>(); while((line=br.readLine())!=null) { while(tokenizer.hasMoreTokens()) { cities.add(tokenizer.nextToken()); } } // sort cities list } fnfe.printStackTrace(); ioe.printStackTrace(); } // put cities list in combo cboCities.setModel(cboModelCities); cboModelCities.addElement(cities); }
|
|
« Última modificación: 16 Febrero 2015, 23:06 pm por Gus Garsaky »
|
En línea
|
"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein
|
|
|
GenR_18
Desconectado
Mensajes: 115
|
Muy bien, muchas gracias! le he hecho algunas modificaciones y me ha funcionado correctamente, les paso el código por si a alguien le sirve. chooser.showOpenDialog(chooser); // chooser o new JFrame() File fileXML = chooser. getSelectedFile(); // guardamos el archivo en el objeto fileXML String path = fileXML. getAbsolutePath(); // ubicacion del archivo try { cities = new ArrayList<String>(); cities_dest = new ArrayList<String>(); while((lineas = buffer.readLine()) != null) { //cities = new ArrayList<String>(); //cities_dest = new ArrayList<String>(); while(st.hasMoreTokens()) { cities.add(st.nextToken()); cities_dest.add(st.nextToken()); i++; } } entrada.close(); } fnfe.printStackTrace(); } { ioe.printStackTrace(); } }
Las declaraciones las puse globales, ya que las ocupo en otras partes del programa:
Gracias por la ayuda!. Salu2
|
|
|
En línea
|
|
|
|
Usuario Invitado
Desconectado
Mensajes: 625
|
Si tienes 1 minuto, edita el título del tema así, para indicar que se ha resuelto la duda: Respecto a las variables globales, no existen. Solo hay variables locales, de referencia y de clase. Las variables locales son las que solo viven en un determinado ámbito, como en los métodos. Las variables de referencia son variables que son accesibles a través de instancias de la clase que describe la variable, por último, las variables de clase son variables estáticas a las cuales se accede por el nombre de la clase, seguido del nombre de la variable, como por ejemplo: Math.PI (PI es una variable de clase, es una constante a la cual accedemos directamente por medio de la clase). Las operaciones debes de hacerlas dentro de un método y allí creas variables que solo van a vivir mientras dure la ejecución del método. Si declaras variables innecesarias como variables de referencia, solo estás mal gastando memoria. EDIT: Ya vi tu actualización, y está bien que coloques esas variables como de referencia si se van a utilizar en varios procesos. Un salu2.
|
|
« Última modificación: 17 Febrero 2015, 00:51 am por Gus Garsaky »
|
En línea
|
"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein
|
|
|
GenR_18
Desconectado
Mensajes: 115
|
Si tienes 1 minuto, edita el título del tema así, para indicar que se ha resuelto la duda: Respecto a las variables globales, no existen. Solo hay variables locales, de referencia y de clase. Las variables locales son las que solo viven en un determinado ámbito, como en los métodos. Las variables de referencia son variables que son accesibles a través de instancias de la clase que describe la variable, por último, las variables de clase son variables estáticas a las cuales se accede por el nombre de la clase, seguido del nombre de la variable, como por ejemplo: Math.PI (PI es una variable de clase, es una constante a la cual accedemos directamente por medio de la clase). Las operaciones debes de hacerlas dentro de un método y allí creas variables que solo van a vivir mientras dure la ejecución del método. Si declaras variables innecesarias como variables de referencia, solo estás mal gastando memoria. EDIT: Ya vi tu actualización, y está bien que coloques esas variables como de referencia si se van a utilizar en varios procesos. Un salu2. Estoy un poquito acostumbrado a otros lenguajes de programación, así que se me van algunos tecnicismos jeje. De nuevo, gracias por la ayuda. Salu2!
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
¿Cómo ordenar un ArrayList de elementos-registro según uno de sus campos?
Java
|
reygecko
|
1
|
4,587
|
17 Enero 2013, 00:00 am
por reygecko
|
|
|
[Ayuda] Ordenar los elementos de un ArrayList
Java
|
jscrip
|
4
|
3,340
|
9 Julio 2013, 07:42 am
por jscrip
|
|
|
[Ayuda] Como puedo ordenar los elementos gráficos por coordenadas en Python
Scripting
|
Proxmond
|
3
|
4,400
|
16 Junio 2014, 16:48 pm
por daryo
|
|
|
Mostrar elementos en un Jlist al presionar un item de un Jcombobox
Java
|
danndres
|
1
|
4,765
|
22 Marzo 2015, 14:58 pm
por Usuario Invitado
|
|
|
MOVIDO: Mostrar elementos en un Jlist al presionar un item de un Jcombobox
Programación General
|
Eleкtro
|
0
|
1,967
|
22 Marzo 2015, 10:22 am
por Eleкtro
|
|