• Jueves 14 de Noviembre de 2024, 08:02

Autor Tema:  Arreglo De Objetos  (Leído 3848 veces)

Edna

  • Nuevo Miembro
  • *
  • Mensajes: 17
    • Ver Perfil
Arreglo De Objetos
« en: Viernes 9 de Enero de 2004, 00:16 »
0
Hola:

Otra vez yo, pero necesito que me ayuden estoy tratando de crear una ventana con sus respectivos menus pero dichos datos de los menus se encuentran en una tabla de la cual estoy leyendo, para esto esto estoy utilizando una funcion recursiva pero como puedo manejar los objetos que se crean (javax.swing.JMenu, javax.swing.JMenuBar, javax.swing.JMenuItem).
Por fa ayudenme
Soy mega principiante en esto
Gracias
 :blink:
 :(

chuidiang

  • Miembro MUY activo
  • ***
  • Mensajes: 123
  • Nacionalidad: es
    • Ver Perfil
    • http://www.chuidiang.com
Re: Arreglo De Objetos
« Respuesta #1 en: Viernes 9 de Enero de 2004, 09:15 »
0
Tu array puede ser de Component

En este array puede meter cualquier clase que herede de Component, y en concreto los que mencionas.

Al recuperarlos del array, siguen siendo del tipo Component, así que deberás hacer un cast a la clase adecuada.

Código: Text
  1.  
  2. (javax.swing.JMenuItem)array[i];
  3.  

Antes de hacer el cast, suele ser conveniente verificar que el Component es realmente del tipo al que vas a hacer el cast

Código: Text
  1. if (arrray[i] instanceof javax.swing.JMenuItem)
  2.    (javax.swing.JMenuItem)array[i];
  3.  

Se buena.

Edna

  • Nuevo Miembro
  • *
  • Mensajes: 17
    • Ver Perfil
Re: Arreglo De Objetos
« Respuesta #2 en: Viernes 9 de Enero de 2004, 15:28 »
0
Hola  :D  Gracias por la contestación pero...
necesito que me ayudes otra vez ya que como te mencione soy principiante en esto.
Asi como entendi tu respuesta le puse asi.....
en la declaracion de variables pues esto:

    private javax.swing.JMenu Menu[];
    private javax.swing.JMenuItem Item[];


y en el codigo
              Menu[1] = new javax.swing.JMenu();                                
              Menu[1].setText(rs2.getString("des").substring(0));                              
              MenuBar.add(Menu[1]);


estoy en lo correcto?
 :(

Edna

  • Nuevo Miembro
  • *
  • Mensajes: 17
    • Ver Perfil
Re: Arreglo De Objetos
« Respuesta #3 en: Sábado 10 de Enero de 2004, 00:40 »
0
Hola
Ayudame con esto de los arreglos de menus porque no me sale es urgente
te lo agradeceria mucho
 :(

chuidiang

  • Miembro MUY activo
  • ***
  • Mensajes: 123
  • Nacionalidad: es
    • Ver Perfil
    • http://www.chuidiang.com
Re: Arreglo De Objetos
« Respuesta #4 en: Lunes 12 de Enero de 2004, 10:05 »
0
Primero debes dar tamaño al array

Código: Text
  1.  
  2. private javax.swing.JMenu Menu[];
  3.  
  4. Menu = new javax.swing.JMenu [10];  // 10 menus
  5.  
  6.  

Ya tienes un array de 10 menus, pero cada uno de los items del array es ahora mismo null. Debes ir creando cada uno de los menus

Código: Text
  1.  
  2. int i;
  3. for (i=0; i<10;i++)
  4.    Menu[i] = new javax.swing.JMenu();
  5.  
  6.  

El array empieza con indice cero. El resto ya puedes hacer lo que estabas haciendo

Código: Text
  1.  
  2. Menu[0].setText(rs2.getString("des").substring(0));
  3. MenuBar.add(Menu[0]);
  4.  
  5.  


Se buena.

Edna

  • Nuevo Miembro
  • *
  • Mensajes: 17
    • Ver Perfil
Re: Arreglo De Objetos
« Respuesta #5 en: Martes 13 de Enero de 2004, 00:40 »
0
Muchas Gracias de Nuevo; creeme que me estas ayudando muchisimo :D  y te lo agradezco, ya logré ordenar todo el menu conforme a una recursividad  y el arreglo de los menus, pero ahora  :comp:  como le puedo hacer para que al momento de hacer click en un item llame a una determinada clase ya que todos los item estan en un arreglo
Gracias por ayudarme

chuidiang

  • Miembro MUY activo
  • ***
  • Mensajes: 123
  • Nacionalidad: es
    • Ver Perfil
    • http://www.chuidiang.com
Re: Arreglo De Objetos
« Respuesta #6 en: Martes 13 de Enero de 2004, 09:17 »
0
No sé muy bien lo que tienes.

Lo habitual es a cada JMenuItem añadirle un ActionListener a través del método addActionListener(). Este ActionListener que añades es el que hace lo que tenga que hacer esa opción del menú.

Otra opción es añadir el mismo ActionListener a todos los JMenuItem. Luego el ActionListener debe comprobar que JMenuItem ha sido pulsado a través del ActionEvent que recibe. Me explico

Código: Text
  1.  
  2. class Accion implements ActionListener
  3. {
  4.    public void acionPerformed (ActionEvent e)
  5.    {
  6.         if (e.getSource() == Item[0])
  7.             // accion 1
  8.         else (e.getSource() == Item[1])
  9.             // accion 2
  10.         // etc, etc.
  11.    }
  12. }
  13.  
  14. ...
  15.  
  16. Accion accion = new Action();
  17. for (i=0;i<NUMERO_ITEMS;i++)
  18.    Item[i].addActionListener (accion);
  19.  
  20.  

Bueno, no sé si es esto lo que necesitas.

Se buena.

Edna

  • Nuevo Miembro
  • *
  • Mensajes: 17
    • Ver Perfil
Re: Arreglo De Objetos
« Respuesta #7 en: Martes 13 de Enero de 2004, 19:03 »
0
Hola Gracias por la ayuda.. al hacer clic en el item me manda la etiqueta de el item o sea esto, a lo que me referia de la recursividad donde de un principal mando llamar la funcion arbol con ciertos parametros o sea esto;
[ public void arbol (String cad, String pdr, ResultSet rs, int contitem, Connection con, int contmenu) {
     int length, totreg, totreg1,i;

     ////////////////////////
   // se ejecuta el script  
///////////////////////////////////
 
     if ((pdr.equals("0")) || (rs2.getString("tran").substring(0).equals(""))){
        funcion = true;
     }
     else if (pdr != "0"){

           // valido si la transaccion se puede ejecutar o no
     }  
     if (funcion == true){
         .....
     if (totreg != 1){
         
       // se adhiere el menubar y los menus requeridos

     else if ((totreg == 1) && (pdr != "0")) {
 
[Aqui es donde necesito de tu ayuda, el siguiente bloque es para adherir todos los item requeridos y es donde puse lo de addActionListener pero para esto necesito que al momento de dar clic en el item ejecute una clase o sea abra una ventana una determinada transaccion, lo que logre es que saliera con el System.out.println("Nombre de la Etiqueta del item" + e.getActionCommand) ]

         rs2.first();
          Item[contitem] = new javax.swing.JMenuItem();
          Item[contitem]/*[contmenu]*/.setText(rs2.getString("des").substring(0));
          trans = rs2.getString("tran").substring(0);
          Item[contitem].addActionListener(new Accion());

          Menu[contmenu-1].add(Item[contitem]);
          ..........
          arbol(cad, pdr, rs2, contitem, con, contmenu);          
   ...................                                                                          }  
 } // end public void arbol
 ]

Espero me puedas ayudar de nuevo
Gracias

Edna

  • Nuevo Miembro
  • *
  • Mensajes: 17
    • Ver Perfil
Re: Arreglo De Objetos
« Respuesta #8 en: Miércoles 14 de Enero de 2004, 16:02 »
0
:D
Ya lo logre muchas gracias por tu ayuda. :lol: ..... espero me sigas ayudando cuando tenga dudas :(
 :kicking: