Java - ayuda necesito implementar la función pop para eliminar de la pila, pero en el modo grafico.

 
Vista:
sin imagen de perfil

ayuda necesito implementar la función pop para eliminar de la pila, pero en el modo grafico.

Publicado por Alex Marenco (1 intervención) el 16/11/2021 15:24:31
Esta es la clase nodo
package pilas;

class Nodo {
Object elemento;
Nodo siguiente;
public Nodo (Object x){
elemento=x;
siguiente=null;
}

public Object getElemento() {
return elemento;
}

public void setElemento(Object elemento) {
this.elemento = elemento;
}

public Nodo getSiguiente() {
return siguiente;
}

public void setSiguiente(Nodo siguiente) {
this.siguiente = siguiente;
}

}
Esta es la Clase PilaLista
package pilas;


import pilas.Nodo;

public class PilaLista {
private Nodo cima;

public PilaLista(){
cima = null;
}
// operaciones
public boolean pilaVacia(){
return cima == null;
}

public void insertar(Object elemento){
Nodo nuevo;
nuevo = new Nodo(elemento);
nuevo.siguiente = cima;
cima = nuevo;
}

public Object quitar() throws Exception{
if (pilaVacia())
throw new Exception ("Pila vacía,no se puede extraer.");
Object aux = cima.elemento;
cima = cima.siguiente;
return aux;
}

public Object cimaPila() throws Exception {
if (pilaVacia())
throw new Exception ("Pila vacía, no se puede leer cima.");
return cima.elemento;
}

public void limpiarPila() {
Nodo t;
while(!pilaVacia()) {
t = cima;
cima = cima.siguiente;
t.siguiente = null;
}
}

}
Y esta es la clase donde esta el modo grafico, que es donde tengo que implementar la funcion
package pilas;

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.*;

public class interfazpila extends JFrame{
JLabel lab1;
JTextField caja;
JButton btnpush, btnpop, btncima;
JPanel panel;
PilaLista lista = new PilaLista();
int x = 30, y = 300;

public interfazpila(){
this.setLayout(null);
this.setSize(600, 600);
this.setLocationRelativeTo(null);
this.setVisible(true);
componentes();
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

public void componentes(){
panel = new JPanel();
panel.setLayout(null);
panel.setBounds(10, 10, 580, 500);
this.add(panel);
lab1 = new JLabel("PILA");
lab1.setBounds(60, 30, 100, 20);
panel.add(lab1);
btnpush = new JButton("PUSH");
btnpush.setBounds(200, 80, 100, 40);
panel.add(btnpush);
btnpush.addActionListener(oyente);
btnpop = new JButton("POP");
btnpop.setBounds(200, 140, 100, 40);
panel.add(btnpop);
btnpop.addActionListener(oyente);
btncima = new JButton("CIMA");
btncima.setBounds(200, 200, 100, 40);
panel.add(btncima);
btncima.addActionListener(oyente);
}

public void crearNodo(Object dato){
caja = new JTextField(String.valueOf(dato));
caja.setBounds(x, y, 80, 50);
panel.add(caja);
y-=55;
}

ActionListener oyente = new ActionListener(){
Object entrada;
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource() == btnpush){
entrada = JOptionPane.showInputDialog("Introduzca el dato");
lista.insertar(entrada);
crearNodo(entrada);
}
if(e.getSource() == btnpop){

}
}
};

public static void main (String[] args){
interfazpila interfaz = new interfazpila();
}
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder