Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/05/2009, 07:04
Juny18
 
Fecha de Ingreso: abril-2007
Mensajes: 166
Antigüedad: 17 años, 9 meses
Puntos: 2
ips en campos de texto

Resulta que tengo un problema, resulta que tengo un programa con 2 campos de texto y un jlist con un modelo definido, bueno pues quiero que me meta en los 2 campo de texto la primera direccion ip del jlist y la ultima.

Pero me da este error "AWT-EventQueue-0" java.util.NoSuchElementException", dice que no hay elementos, pero si los tiene.

Lo que he hecho a sido esto

desde.setText((String)modelo.lastElement().toStrin g());
hasta.setText(modelo.firstElement().toString());;

Aqui os pongo la clase servidor

Código:
public class Servidor implements Runnable{

    
   int puertoServidor=1998;
   int tamanoBuffer=4;
   DatagramSocket ds;
   byte buffer[] = new byte[tamanoBuffer];
   int tamarrayips=10;
   short [] compruebaips=new short[tamarrayips];
   String [] arrayips = new String[tamarrayips];
   int i=0;
   public int cadencia;
   JList jlogger = new JList();
   DefaultListModel modelo;
   DefaultListModel modelo2;
   
public Servidor(DefaultListModel mod,DefaultListModel mod2) throws IOException{
    modelo=mod;
    modelo2=mod2;
       
    try{  
              //----------------CODIFICACION ARCHIVOS CONFIGURACION----------                 
                    File archivo = null;
                    FileReader fr = null;
                   
                    archivo = new File ("config_server.conf");
                    fr = new FileReader (archivo);
                    BufferedReader br = new BufferedReader(fr);
                    String linea;
                    ArrayList cadenas = new ArrayList();

                    while((linea=br.readLine())!=null)
                    {  
                        System.out.println(linea);
                        cadenas.add(linea);
                        
                        
                    }
                     puertoServidor= Integer.parseInt((String) cadenas.get(0));
                     cadencia= Integer.parseInt((String) cadenas.get(1));
                   if( fr != null)
                   fr.close();
          }
        catch(FileNotFoundException ex6)
                
        {
                try
                {
                    FileWriter fichero = new FileWriter("config_server.conf");
                    PrintWriter pw = new PrintWriter(fichero);
                        
                    pw.println("El fichero no existía");
                    pw.close();
                }
                catch (Exception c)
                {
                    c.printStackTrace();
                }
             
                       
        }
}
    

    public void run() {
        try {      
           ds = new DatagramSocket(puertoServidor);
           
               DatagramPacket p = new DatagramPacket(buffer, buffer.length);             
           
               while(true)
                   {         
                             ds.receive(p);//recibe el paquete
                             
                              int existe=0;
                              for(int i=0;i<modelo.getSize();i++){
                                  if(modelo.elementAt(i).equals(p.getAddress().toString())){
                                    existe=1; 
                                    setComprueba(i,(short)0);
                                   
                                  }
                              }
                              if(existe==0){
                                  anadirPC(p.getAddress().toString());
                                  //setComprueba(i,(short)0);
                                 
                              }
                              
                               log(p,buffer);
                                                     
               }
        }
  
        catch(SocketException e)
        {
            System.out.println("Se ha producido error en el socket");            
        }
        catch (UnknownHostException e)
        {
            System.out.println("Error host desconocido");
        }
        catch(IOException e){
            System.out.println("Error en la I/O");
        }
    }
   
    public void log(DatagramPacket paquete,byte buf[])
    {
    
         modelo2.addElement("--------SIRVIENDO PETICION--------");
         modelo2.addElement("CLIENTE: "+paquete.getAddress().toString());
         modelo2.addElement("PUERTO: "+paquete.getPort());
         modelo2.addElement("SERVIDOR: "+paquete.getSocketAddress().toString());
         modelo2.addElement("---------CONTENIDO DEL PAQUETE---------");
         for(int ac=0;ac<buf.length;ac++)
            {
                                    
               modelo2.addElement(buf[ac]);
            }
    
    }
      
    
    public void anadirPC(String ip){
            modelo.addElement(ip);    
            arrayips[i]=ip; 
            setComprueba(i,(short)0);
            
            i++; 
            if(i >= tamarrayips){ //doblar el tamaño de los arrays
                 tamarrayips*=2;
                 String aux[]=new String[tamarrayips];
                 short aux2[]=new short[tamarrayips];
                 for(int i=0;i<arrayips.length;i++){
                     aux[i]=arrayips[i];
                     aux2[i]=compruebaips[i];
                 }
                 arrayips=aux;
                 compruebaips=aux2;
            }
    
    }
    
    public synchronized void setComprueba(int elem,short valor){
        compruebaips[elem]=valor;
    }
    public short getComprueba(int elem){
        return compruebaips[elem];
    }
    public int sizeComprueba(){
        return i;
    }
    
}
Haber que me decis