no se como implementar este codigo es un ejemplo de colas
El problema que tengo es que no se como llamar estas funciones en la parte principal
espero puedan ayudarme.
esto es lo que tengo en la principal
Código
p.setVisible(true); p.setBounds(0, 0, 300, 200); }
Clase cola
Código
import java.util.ArrayList; public class Cola { public Cola(){ nodos=new ArrayList<Integer>(); } public void insertar(int x){ nodos.add(x); } public void eliminar(){ nodos.remove(0); } public void resetear(){ nodos.clear(); } public ArrayList<Integer> getNodos() { return nodos; } public void setNodos(ArrayList<Integer> nodos) { this.nodos = nodos; } }
Clase que dibuja el panel
Código
import java.awt.*; import javax.swing.JPanel; public int x=20; public int y=100; public Cola cola; public boolean swborrar=false; public PanelDibujo(Cola c){ cola=c; } super.paintComponents(g); g2d.fillRect(0,0,500,300); for(int i=0;i<cola.getNodos().size();i++){ if(i!=0){ g2d.drawLine(2*x*(i+1)-10, y+15, 2*x*(i+1), y+15); } g2d.drawRoundRect(2*x*(i+1), y, 30, 30, 10, 10); g2d.drawString(""+cola.getNodos().get(i), 2*x*(i+1)+12, y+20); } if(swborrar){ g2d.fillRect(0,0,400,200); cola.resetear(); swborrar=false; } } public boolean isSwborrar() { return swborrar; } public void setSwborrar(boolean swborrar) { this.swborrar = swborrar; } }
Clase clase principal
Código
import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.*; PanelDibujo pd; JPanel pdatos; Cola cola; JTextField t; public void init(){ cola=new Cola(); pd=new PanelDibujo(cola); @Override try{ if(cola.getNodos().size()<8){ pd.repaint(); repaint(); }else{ } } } }); @Override if(cola.getNodos().size()>0){ cola.eliminar(); pd.repaint(); repaint(); } } }); @Override pd.setSwborrar(true); pd.repaint(); repaint(); } }); pdatos.add(t); pdatos.add(b); pdatos.add(borrar); pdatos.add(limpiar); add(pd); } }