Retroceder   Foros del Web > Programación para sitios web > Java y JSP

Respuesta
 
Herramientas Desplegado
Antiguo 05-mar-2008, 08:56   #1 (permalink)
me_gusta_el_futbol ha deshabilitado el karma
 
Fecha de Ingreso: marzo-2008
Mensajes: 2
Triste Actualizar automaticamente un jList

Hola!
Queria comentaros un problema que tengo para actualizar un jList. Antes de nada, decir que llevo apenas un mes programando en java y debido a mi inexperiencia hay muchas funcionalidadesque desconozco de este potente lenguaje.
Mi problema es el siguiente:
En un fichero se guarda alfabeticamente una lista de nombres que introduce el usuario. Lo que yo quiero es que nada mas ejecutarse mi aplicacion, dichos nombres aparezcan en el jList sin necesidad de accionar un boton actualizar o algo similar,sino que lo haga automaticamente.
Lo que yo habia pensado, y que no me funciona, es llamar desde el main al procedimiento "leefichero()" (el cual lee el fichero linea a linea y los inserta en el jList). Obviamente eso no es posible porque leefichero debe ser un metodo no estatico, y el main si lo es. Lo intente resolver creando una nueva instancia de la clase, pero de esta forma tampoco me funciona, porque supongo que al crear la nueva instancia de la clase, se crea una nueva instancia del jList y entonces ya no se muestra en mi jList inicial. Aqui os muestro el codigo con las partes que pueden ser utiles para vosotros:

import java.io.*;
import java.awt.*;
import javax.swing.*;
import javax.swing.event.*;
import java.awt.event.*;
import java.util.*;

public class NombresUI extends javax.swing.JFrame {
DefaultListModel modelo = new DefaultListModel(); //modelo asociado al jList

/** Creates new form NombresUI */
public NombresUI() {
initComponents();
}

private void initComponents() {
.........
.........
jList1 = new JList(modelo);
..........
}

public void leefichero() {
File archivo = null;
boolean existe=false;
try {
archivo = new File ("./data.dat");
existe=archivo.exists();
if (existe==false)
archivo.createNewFile();
String linea="";
FileReader fr = new FileReader (archivo);
BufferedReader br = new BufferedReader(fr);
while((linea=br.readLine())!=null){
modelo.addElement(linea);
}
}
catch(IOException e){
System.out.println(e);
}finally{
try{ //el bloque finally se ejecuta siempre, por eso, si se cierra el fichero
FileReader fr = new FileReader (archivo);
if( fr != null){ //al final del primer try, y ha dado un error antes, pasaría
fr.close(); //al 1er catch y luego saldría, dejándolo abierto. Es conveniente
} //cerrarlo aquí, comprobando que no sea -por un error anterior, como
}catch (IOException e){ // no tener permisos de lectura o que no exista - de valor null.
System.out.println(e);
}
}
}

public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new NombresUI().setVisible(true);
}
});
NombresUI nuevainstancia=new NombresUI();
nuevainstancia.leefichero();
}

..................
..................
} //end of Class Nombres UI

Eso es lo que actualmente tengo y ya os he comentado que no me funciona. Espero que podais ayudarme porque estoy completamente atscado. Un saludo y gracias por vuestra atencion
me_gusta_el_futbol está desconectado   Responder Citando
Antiguo 05-mar-2008, 09:32   #2 (permalink)
vdpazmino ha deshabilitado el karma
 
Fecha de Ingreso: mayo-2007
Mensajes: 129
Re: Actualizar automaticamente un jList

Lo que veo que en la parte del if no es necesario que hagas existe==false solo basta que pongas existe como es un booleano

if (existe)
archivo.createNewFile();

en la parte del main estas instancioando dos veces intenta lo siguiente

public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
NombresUI nuevainstancia=new NombresUI();
nuevainstancia.setVisible(true);
nuevainstancia.leefichero();
}
});

}

espero que te sirva

salu2
vdpazmino está desconectado   Responder Citando
Antiguo 05-mar-2008, 12:35   #3 (permalink)
me_gusta_el_futbol ha deshabilitado el karma
 
Fecha de Ingreso: marzo-2008
Mensajes: 2
Re: Actualizar automaticamente un jList

Si señor! Ahora ya funciona perfecto. La verdad es un error de novato el que he tenido, pero es que Java es muy distinto a Eiffel, que es el lenguaje en el que estoy acostumbrado a programar. Muchas gracias por tu ayuda. Un saludo
me_gusta_el_futbol está desconectado   Responder Citando
Respuesta

Calificación: Calificación de Tema: 1 votos, 4,00 de promedio.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Desactivado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 14:35.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93