Foros del Web » Programación para mayores de 30 ;) » Java »

Como manipular array de Jbuttons de una clase en otra.?

Estas en el tema de Como manipular array de Jbuttons de una clase en otra.? en el foro de Java en Foros del Web. hola tengo una clase que crea una interfaz grafica donde agrego a un Jframe un array de botones , luego de eso creo un objeto ...
  #1 (permalink)  
Antiguo 29/04/2011, 08:18
Avatar de RIVERMILLOS  
Fecha de Ingreso: marzo-2010
Mensajes: 1.336
Antigüedad: 14 años, 2 meses
Puntos: 15
Como manipular array de Jbuttons de una clase en otra.?

hola tengo una clase que crea una interfaz grafica donde agrego a un Jframe un array de botones , luego de eso creo un objeto de otra clase donde le paso como parametro en el constructor de la segunda clase el array de botones y en esta clase intento alterar los botones y no funciona que puedo hacer para esto?


saludos
  #2 (permalink)  
Antiguo 29/04/2011, 08:32
 
Fecha de Ingreso: marzo-2011
Mensajes: 8
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Como manipular array de Jbuttons de una clase en otra.?

Hola rivermillos

me gustaria saber si la clase es solo una simple clase o es otro Jframe, yo he echo algunas modificaciones con botones de un Jframe en otro Jframe.
Solo personalizas el codigo del boton, en vez de que sea private lo hago protected o publico.

Bueno espero te haya servido de algo mi respuesta...

Saludos!!
  #3 (permalink)  
Antiguo 29/04/2011, 08:35
Avatar de RIVERMILLOS  
Fecha de Ingreso: marzo-2010
Mensajes: 1.336
Antigüedad: 14 años, 2 meses
Puntos: 15
Respuesta: Como manipular array de Jbuttons de una clase en otra.?

Solo es una siemple clase lo tengo asi.

clase main crea una interfaz , despues le paso los botones a la clase sencilla y quiero modificarlos en esta clase pero no se modifican digamos si quiero deshabilitarlos no se ve no sale ningun erro ni nada solo no funciona.


saludos


Esta es la clase que recibe los botones.
Código java:
Ver original
  1. /*
  2.  * To change this template, choose Tools | Templates
  3.  * and open the template in the editor.
  4.  */
  5.  
  6. package interco;
  7.  
  8.  
  9. import javax.swing.JButton;
  10.  
  11. /**
  12.  *
  13.  * @author avanzado
  14.  */
  15. public class Move extends Thread{
  16.  
  17.  
  18.     public JButton red[];
  19.     int pcs[]= {3,6,9,12,15,18};
  20.     int pc;
  21.     boolean direc;
  22.     public Move(JButton red[],int pc,boolean direc){
  23.         this.red=red;
  24.         this.pc=pc;
  25.         this.direc=direc;
  26.     }
  27.     @Override
  28.     public void run(){
  29.             try {
  30.                 if(direc){
  31.                   for(int i=pc;i<this.red.length;i++){
  32.                     this.red[i].setText("0");
  33.                     this.red[i].setVisible(false);
  34.                     this.red[i].validate();
  35.                     this.sleep(1000);
  36.                     //red[i].setEnabled(true);
  37.                     System.out.println("Boton#"+i);
  38.                   }
  39.                 }else{
  40.                   for(int i=pc;i>=0;i--){
  41.                     this.red[i].setText("0");
  42.                     this.red[i].setVisible(false);
  43.                     this.red[i].validate();
  44.                     this.sleep(1000);
  45.                     //red[i].setEnabled(true);
  46.                     System.out.println("Boton#"+i);
  47.                   }
  48.                 }          
  49.                 System.out.println("Fin");
  50.             } catch (InterruptedException ex) {
  51.                System.out.println("Error!");
  52.             }      
  53.     }
  54.  
  55. }

Última edición por RIVERMILLOS; 29/04/2011 a las 08:48
  #4 (permalink)  
Antiguo 29/04/2011, 10:45
 
Fecha de Ingreso: marzo-2011
Mensajes: 8
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Como manipular array de Jbuttons de una clase en otra.?

Ok muy bien dejame ver ke puedo hacer.. aorita por lo pronto estoy en el trabajo pero en el transcurso del dia lo voy viendo y lo vamos arreglando..

Saludos!!...
  #5 (permalink)  
Antiguo 29/04/2011, 11:02
 
Fecha de Ingreso: marzo-2011
Mensajes: 8
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Como manipular array de Jbuttons de una clase en otra.?

Hola RIVERMILLOS

Ya trate de hacer un ejemplo

En mi clase JFrame cree un objeto de tu clase... dejame poner mejor el codigo...
Código Java:
Ver original
  1. public class Principal extends javax.swing.JFrame {
  2. /** Creates new form Principal */
  3.     Move move; // objeto de tu clase
  4.     public Principal() {
  5.         initComponents();
  6.     }
  7.  
  8. private void jButton7ActionPerformed(java.awt.event.ActionEvent evt) {
  9.         javax.swing.JButton arrBotones[]={jButton1,jButton2,jButton3,jButton4,jButton5,jButton6,jButton7};
  10.         move= new Move(arrBotones, 0, true);
  11.         move.start();// En esta parte me pidio cambiar run por start
  12.     }

y en el metodo run de tu clase move le puse true para ke se viera el 0
this.red[i].setVisible(true);

lo hice y funciono... checkalo y me dices..
  #6 (permalink)  
Antiguo 29/04/2011, 12:59
Avatar de RIVERMILLOS  
Fecha de Ingreso: marzo-2010
Mensajes: 1.336
Antigüedad: 14 años, 2 meses
Puntos: 15
Respuesta: Como manipular array de Jbuttons de una clase en otra.?

ya lo probe y funciono como dices el problema creo que es como utilizo la clase.

Código java:
Ver original
  1. public void init(int time){
  2.         time=time*60000;    
  3.         timer = new Timer (time, new ActionListener()
  4.          {          
  5.                 public void actionPerformed(ActionEvent e)
  6.                 {
  7.                   if(ca==1){
  8.                   timer.stop();
  9.                   }
  10.                   ca++;
  11.                   while(true){
  12.                     try {
  13.                         rando=new Random();
  14.                         int x = rando.nextInt(5);
  15.                         int pc=pcs[x];
  16.                         Move move=new Move(red,pc,rando.nextBoolean());
  17.                         move.start();
  18.                         Thread.sleep(20000);
  19.                     }catch (InterruptedException ex) {
  20.                         Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
  21.                     }
  22.                   }
  23.  
  24.                  
  25.                 }
  26.                
  27.             });
  28.         timer.start();
  29.      }


Asi creo un objeto cada 20 segundo .... creo que es por eso pero no sabria que hacer en este caso.


saludos
  #7 (permalink)  
Antiguo 29/04/2011, 15:06
 
Fecha de Ingreso: marzo-2011
Mensajes: 8
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Como manipular array de Jbuttons de una clase en otra.?

En esta parte quieres crear nuevos botones?,

ske no entendi la idea....

Saludos!!
  #8 (permalink)  
Antiguo 29/04/2011, 23:38
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 3 meses
Puntos: 260
Sonrisa Respuesta: Como manipular array de Jbuttons de una clase en otra.?

Hola,

El problema es que estás creando un ciclo infinito que hace esperar a tu aplicación 20 segundos secuencialmente, por lo tanto la aplicación no responderá más (está bloqueada, trabada),

Código:
...
                  while(true){
                    try {
                        rando=new Random();
                        int x = rando.nextInt(5);
                        int pc=pcs[x];
                        Move move=new Move(red,pc,rando.nextBoolean());
                        move.start();
                        Thread.sleep(20000);
...
Eso se traduce en:

Código:
repita (infinitamente) {
  ...
  Espere 20 segundos;
}
Ese hilo, el hilo que está ejecutando los eventos, y tiene que esperar 20 segundos secuencialmente para siempre, es el hilo principal (event dispatcher thread).

Saludos,
  #9 (permalink)  
Antiguo 30/04/2011, 20:24
Avatar de RIVERMILLOS  
Fecha de Ingreso: marzo-2010
Mensajes: 1.336
Antigüedad: 14 años, 2 meses
Puntos: 15
Respuesta: Como manipular array de Jbuttons de una clase en otra.?

si lo cambie por un timer mejor pero , el problema es que timer me hace esperar al principio el tiempo que le coloque , hay alguna forma de que timer inicie de una vez.?


saludos
  #10 (permalink)  
Antiguo 30/04/2011, 20:55
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 3 meses
Puntos: 260
Sonrisa Respuesta: Como manipular array de Jbuttons de una clase en otra.?

Hola,

Posiblemente,

Código:
    public void init(int time){
        time=time*60000;
        ActionListener listener = new ActionListener() {
          public void actionPerformed(ActionEvent e)
            ....
          }
        }
        listener.actionPerformed(null);
        timer = new Timer (time, listener);
        timer.start();
     }
Aunque parezca que ActionListener o actionPerformed es un objeto o un método mágico, no lo es, es una objeto o método como cualquier otro, y si no haces uso del parámetro 'e' entonces le puedes pasar un valor null. También puedes buscar información sobre public void setInitialDelay(int initialDelay) en la documentación del Timer.

Saludos,

Última edición por HackmanC; 30/04/2011 a las 21:01 Razón: setInitialDelay

Etiquetas: clase, manipular
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:06.