Java - Pilas

 
Vista:
sin imagen de perfil

Pilas

Publicado por oscar (6 intervenciones) el 19/02/2017 15:06:28
Buenos días, tengo un programa en el cual cada ves que inserte un elemento en la pila, debe aparecer una imagen distinta.

ClasePila:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
package packagePila;
 
import javax.swing.JLabel;
 
 
public class ClasePila {
 
    private int Pila[];
    private int tope;
 
    public void creaPila(int n){ //n es el tamaño de la pila en mi ejemplo n=6
 
        Pila=new int[n];
        tope=-1;
    }
    public void insertaValor(int valor){ //inserta un valor, en el ejemplo 10
        int indMax=Pila.length-1;
        if(tope<indMax){
            tope=tope+1; //tope=0
            Pila[tope]=valor; //pila[0]=10;
        }
    }
    public void eliminarElemento(){
        int valor=0;
        if(tope>-1){ //esto significa que la cola no esta vacia
            valor=Pila[tope];  //si elimino por ejemplo 10 el cual esta en pila[0]=10, el tope bajaria su valor a -1 
            tope=tope-1;
        }
    }
 
     public String muestraPila(){
        String cadena="";
        if(tope>-1){ // si el tope es mayor que -1 significa que hay elementos
            for(int i=0; i<=tope; i++){ //un contador que recorre y añade a cadena el valor de la pila i
             cadena=cadena+Pila[i]+" ";
            }
        }
        else
           cadena="Pila esta vacia";
 
        return cadena+"\n";
    }
 
}

FramePila:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
  int n=Integer.parseInt(jTextField1.getText());
  oPila=new ClasePila();
  oPila.creaPila(n);
  jButton2.setEnabled(true);
  jButton3.setEnabled(true);
  jButton4.setEnabled(true);
 
 
 
}
 
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
   int valor=Integer.parseInt(jTextField1.getText());
   oPila.insertaValor(valor);
   jTextArea1.append(oPila.muestraPila());
}
 
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
   oPila.eliminarElemento();
   jTextArea1.append(oPila.muestraPila());
}
 
private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {
   jTextArea1.append(oPila.muestraPila());
   ImageIcon  imagen1 = new ImageIcon(getClass().getResource("/packageImagenes/dibujo2.gif"));
   ImageIcon icono= new ImageIcon(imagen1.getImage().getScaledInstance(jLabel2.getWidth(),jLabel2.getHeight(),Image.SCALE_DEFAULT));
   jLabel2.setIcon(icono);
}

imagen2
que es lo que falta para que cada ves que inserte un valor en la cola, me muestre imagenes distintas

Gracias
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

Pilas

Publicado por Rubén (24 intervenciones) el 23/02/2017 17:08:59
Hola Oscar,

No se si entiendo bien tu pregunta, pero por lo que veo:

1.- ImageIcon imagen1 = new ImageIcon(getClass().getResource("/packageImagenes/dibujo2.gif")); --> Siempre estás cogiendo el mismo valor desde la ruta, con lo que la imagen siempre será la misma.

Si todas tus imágenes se llaman dibujoX.gif, podrías generar un random para X, y asi cogerías una imagen distinta cada vez.

Espero haberte ayudado.

Un saludo y good programming!. :-)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar