List linked within a Jlist in java

3

I have two classes one contains a linked list Catedraticos and another one containing a Jframe in which I want to put a Jlist , the listaCatedraticos contains the information of your name, surname and email as I can use all the names that are inside the list linked in Jlist .

This is the code of the data that goes into the list

package ListaCatedraticos;

public class DatoCatedratico {
    //registroPersonal,nombres,apellidos,correoElectronico

    private String registroPersonal;
    private String nombre;
    private String apellido;
    private String correo;

    public DatoCatedratico(String registroPersonal,String nombre,String apellido,String correo){
        this.registroPersonal = registroPersonal;
        this.nombre = nombre;
        this.apellido = apellido;
        this.correo = correo;
    }
    /**
     * @return the registroPersonal
     */
    public String getRegistroPersonal() {
        return registroPersonal;
    }

    /**
     * @param registroPersonal the registroPersonal to set
     */
    public void setRegistroPersonal(String registroPersonal) {
        this.registroPersonal = registroPersonal;
    }

    /**
     * @return the nombre
     */
    public String getNombre() {
        return nombre;
    }

    /**
     * @param nombre the nombre to set
     */
    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    /**
     * @return the apellido
     */
    public String getApellido() {
        return apellido;
    }

    /**
     * @param apellido the apellido to set
     */
    public void setApellido(String apellido) {
        this.apellido = apellido;
    }

    /**
     * @return the correo
     */
    public String getCorreo() {
        return correo;
    }

    /**
     * @param correo the correo to set
     */
    public void setCorreo(String correo) {
        this.correo = correo;
    }

     //metodo que devulve la informacion de la lista ordenada
    @Override
    public String toString() {
        return "****************************************************************\n"
                + "Registro : " + registroPersonal + "\n"
                + "Nombre : " + nombre +"\n"
                + "Apellido : " +apellido+"\n"
                +"Correo : " +correo+"\n"
                + "****************************************************************\n";
    }
}

este es es el codigo de la lista que quiero utilizar y el unico dato que deseo ingresar a una Jlist es el nombre y apellido de los catedraticos que estan detro de la lista 
package ListaCatedraticos;

import java.io.DataOutputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import javax.swing.DefaultListModel;
import javax.swing.JList;
import javax.swing.ListSelectionModel;

public class ListaDobleCatedratico {

    public Nodo primero;//primer nodo en la lista
    public Nodo ultimo;//ultimo nodo en la lista
    FileOutputStream fos = null;
    DataOutputStream salida = null;
    public static JList listaNombres;/*declaramos La Lista*/
    public DefaultListModel modelo;/*declaramos el Modelo*/

    public void ingresarNodo(DatoCatedratico dato) {
        Nodo nuevo = new Nodo();//crea un nuevo nodo para agregar a la lista
        nuevo.dato = dato;//el dato ingresado ingresa al nodo nuevo
        if (primero == null) {//si el primer nodo esta vacio
            primero = nuevo;//primero sera igual a un nuevo nodo
            primero.siguiente = null;//siguiente apunta a null
            primero.anterior = null;//anterior apunta a nulls
            ultimo = primero;//ultimo tiene el mismo valor que primero

        } else//si el primer nodo tiene un valor que no sea null
        {
            ultimo.siguiente = nuevo;//siguiente apunta a nuevo
            nuevo.anterior = ultimo;//anterior apunta al ultimo nodo
            nuevo.siguiente = null;//siguiente apunta al null
            ultimo = nuevo;// ultimo tiene el valor de nuevo
        }

    }

    public String verLista() {
        String a = "";
        Nodo actual;//nodo que permite recorrer la lista
        actual = primero;//actual se posiciona en el primer nodo de la lista

        //instanciamos la lista
        listaNombres = new JList();
        listaNombres.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

        //instanciamos el modelo
        modelo = new DefaultListModel();

        while (actual != null) {//mietras actual es distinto de null
            a = a + actual.dato + "\n";//imprimir el nodo de la lista
            System.out.println(actual.dato.getNombre());
            actual = actual.siguiente;//actualiza el nodo de la lista al anterior

                modelo.addElement(actual.dato.getNombre());
                listaNombres.setModel(modelo);


        }
        return a;
    }

    public void eliminar(String registro) {
        Nodo actual = new Nodo();//nodo que recorre la lista
        Nodo atras = new Nodo();//nodo que enlaza con el nodo anterior
        actual = primero;//posiciona el nodo actual al principio de la lista
        atras = null;//incializa el nodo atras en null

        while (actual != null) {//mientras actual es distinto de null

            if (actual.dato.getRegistroPersonal().equals(registro)) {//si el dato de actual es igual al dato que se ingresa

                if (actual == primero) {//si actual es igual al primer dato de la lista

                    if (actual.siguiente == null && actual.anterior == null) {
                        primero = null;
                        System.out.println("La Lista quedo vacia");
                        System.out.println("");
                    } else {
                        primero = primero.siguiente;//primero es igual al nodo siguiente
                        primero.anterior = null;//enlaza anterior a null
                    }

                } else if (actual == ultimo) {
                    ultimo = ultimo.anterior;
                    ultimo.siguiente = null;
                } else {
                    atras.siguiente = actual.siguiente;//atras se enlaza al nodo actual
                    actual.siguiente.anterior = actual.anterior;//anterior se enlaza al nodo siugiente
                }

            }
            atras = actual;//atras tiene el valor de actual
            actual = actual.siguiente;//actualiza la lista
        }
    }
    
asked by CodeScout 04.11.2016 в 16:05
source

1 answer

0

What I understood that you wanted to know is how to go through your linked list to empty the content of the nodes in a JList if this is the case this can be useful for you:

public class StackOverFlow{

ListaDobleCatedratico listCatedratico = new ListaDobleCatedratico();

public void vaciar(){

for(Nodo n = listCatedratico.primero; n != null; n = n.siguiente)

        {

            /* en  tu JList le pasas esto ->*/ n.item;

        }

}


}
    
answered by 04.03.2017 в 18:10