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