Ayuda Listas Enlazadas en Applet

Buenas a toda la comunidad

pues quisiera ver si me pudieran ayudar con esto me pidieron en la universidad que implementaramos las funciones de las listas enlazadas osease

insertar (al inicio y al final)
eliminar (al inicio y al final)
buscar
ordenar

ya las tengo implementadas pero ahora nos pidio que estas funciones las pongamos en un applet (con botones y todo eso) el codigo que tengo es el siguiente quisiera ver si me pudieran ayudar con las adapataciones a un applet

espero me puedan ayudar y de antemano gracias

public class NodoListaTotal {
    //Object datos;
    int datos;
    NodoListaTotal siguienteNodo;
   
    //NodoLista(Object objeto){
    NodoListaTotal(int objeto){
        this(objeto, null);
    }
    //NodoLista(Object objeto, NodoLista nodo){
    NodoListaTotal(int objeto, NodoListaTotal nodo){
        datos=objeto;
        siguienteNodo=nodo;
    }
    //Object obtenerObject(){
    int obtenerObject(){
        return datos;
    }
    NodoListaTotal obtenerSiguiente(){
        return siguienteNodo;
    }
    private NodoListaTotal primerNodo;
    private NodoListaTotal ultimoNodo;
    private String nombre;
   
    public NodoListaTotal(){
        this("lista");
    }
    public NodoListaTotal(String nombreLista){
        nombre=nombreLista;
        primerNodo=ultimoNodo=null;
    }
    public void insertarAlFrente(int elementoInsertar){
        if(estaVacia())
            primerNodo=ultimoNodo=new NodoListaTotal(elementoInsertar);
        else
            primerNodo=new NodoListaTotal(elementoInsertar, primerNodo);
    }
    public void insertarAlFinal(int elementoInsertar){
        if(estaVacia())
            primerNodo=ultimoNodo=new NodoListaTotal(elementoInsertar);
        else
            ultimoNodo=ultimoNodo.siguienteNodo=new NodoListaTotal(elementoInsertar);
    }
    public int eliminarDelFrente() throws ExcepcionListaVacia{
        if(estaVacia())
            throw new ExcepcionListaVacia(nombre);
        //Object elementoEliminado=primerNodo.datos;
        int elementoEliminado=primerNodo.datos;
        if(primerNodo==ultimoNodo)
            primerNodo=ultimoNodo=null;
        else
            primerNodo=primerNodo.siguienteNodo;
        return elementoEliminado;
    }
    public int eliminarDelFinal() throws ExcepcionListaVacia{
        if(estaVacia())
            throw new ExcepcionListaVacia(nombre);
        //Object elementoEliminado=ultimoNodo.datos;
        int elementoEliminado=ultimoNodo.datos;
        if(primerNodo==ultimoNodo)
            primerNodo=ultimoNodo=null;
        else{
            NodoListaTotal actual=primerNodo;
            while(actual.siguienteNodo!=ultimoNodo)
                actual=actual.siguienteNodo;
            ultimoNodo=actual;
            actual.siguienteNodo=null;
        }
        return elementoEliminado;
    }
    public boolean estaVacia(){
        return primerNodo==null;
    }
    public void imprimir(){
        if(estaVacia()){
            System.out.printf("%s vacia\n",nombre);
            return;
        }
        System.out.printf("La %s es: ",nombre);
        NodoListaTotal actual=primerNodo;
        while(actual!=null){
            System.out.printf("%s -> ",actual.datos);
            actual=actual.siguienteNodo;
        }
        System.out.printf("\n");
    }
    public void busca(int elementoBuscar){
        if(estaVacia()){
            System.out.printf("%s vacia\n",nombre);
        }
        NodoListaTotal actual;
        for(actual=primerNodo;actual!=null;actual=actual.siguienteNodo){
            if(elementoBuscar==actual.datos)
                System.out.printf("%s se encuentra en la lista\n",actual.datos);
        }        
    }
    public void ordenar(){
        NodoListaTotal actual=primerNodo;
        Burbuja(actual);
    }
    public void Burbuja(NodoListaTotal cambio){
        NodoListaTotal cambio2;
        int aux;
        for(cambio=primerNodo;cambio!=null;cambio=cambio.siguienteNodo){
            for(cambio2=cambio.siguienteNodo;cambio2!=null;cambio2=cambio2.siguienteNodo){
                if(cambio2.datos<cambio.datos){
                    aux=cambio2.datos;
                    cambio2.datos=cambio.datos;
                    cambio.datos=aux;
                }
            }
        }
    }
    public static void main(String []args){
        Lista lista=new Lista();
       
        lista.insertarAlFinal(9);
       
        lista.insertarAlFinal(11);
       
        lista.insertarAlFinal(3);
                       
        lista.imprimir();
       
        lista.ordenar();
       
        lista.busca(3);
       
        lista.imprimir();
    }
}

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Terminado

bueno pues solo para comentarles que ya pude resolver mi problemilla XD

Imagen de benek

¿Y cómo estuvo? Cuéntanos. :)

¿Y cómo estuvo? Cuéntanos. :)

pues basicamente use netbeans

pues basicamente use netbeans para isertar de modo grafico las areas de texto y los botones

despues me toco programa las acciones de los botones

ya despues me tope con el problema que las funciones o metodos no me imprimian lo que deberia pero ya investigando un poco por internet encontre que mi error era que tenia que concatenar las impresiones de cada funcion para que en cada ciclo me imprimiera el dato del siguiente nodo

vaya que me costo este codigo

XD