• Jueves 14 de Noviembre de 2024, 12:54

Autor Tema:  Jtoolbar Puede Comunicarse Con Jinternalframe  (Leído 1779 veces)

JuanCebolla

  • Nuevo Miembro
  • *
  • Mensajes: 11
    • Ver Perfil
Jtoolbar Puede Comunicarse Con Jinternalframe
« en: Miércoles 14 de Febrero de 2007, 18:51 »
0
A ver mi idea es Un JFrame Principal con su Destok JDestok para crear JInternalFrames.
Las JIntertalFrames seran ventanas de Altas/Bajas/Modificiaciones
Pone un JToolBar en el JFrame Principal con los botones Nuevo-Guardar-Borrar-Buscar para no tener que duplicarlo (el JToolBar) en todas las JInternalFrames, pero tengo un problema, como hago para que al pulsar el JFramePrincipa.ToolBar envie un mensaje al JInternalFrameAltaBajaModificacion Activo....
He hecho un:

//el JFrame Principal
public class frmPrincipal extends javax.swing.JFrame {
 
  /** Creates new form frmPrincipal */
  public frmPrincipal() {
    initComponents();
    this.setTitle("PROVANDO VOY");
  }
 
  private void initComponents() {
    Desktop1 = new javax.swing.JDesktopPane();
    jtbToolBar = new javax.swing.JToolBar();
    btnGuardar = new javax.swing.JButton();
    jMenuBar1 = new javax.swing.JMenuBar();
    jMenu1 = new javax.swing.JMenu();
    jMenuItem1 = new javax.swing.JMenuItem();

    //Boton para Guardar Datos de la JInternalFrame Activa
    btnGuardar.setText("Guardar");
    btnGuardar.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(java.awt.event.ActionEvent evt) {
        btnGuardarActionPerformed(evt);
      }
    });

    jtbToolBar.add(btnGuardar);

   //Menu para abri JInternalFrames de Altas Bajas Modificaciones
    jMenu1.setText("Menu");
    jMenuItem1.setText("Item");
    jMenuItem1.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(java.awt.event.ActionEvent evt) {
        jMenuItem1ActionPerformed(evt);
      }
    });

    jMenu1.add(jMenuItem1);

    jMenuBar1.add(jMenu1);

    setJMenuBar(jMenuBar1);

  private void btnGuardarActionPerformed(java.awt.event.ActionEvent evt) {
  //AQUI ES DONDE TENGO EL PROBLEMA. YA QUE LA SelectedFrame me
  //devuelve es una JInternalFrame y no un JIFUsuario que he creado a partir.
  //de la clase JInternalFrame el JIFUsuari lo defino abajo.. ¿como lo hago?
  //... ¿no puedo llamar a un metodo?
  //me da error ya que el JInternalFrame no tiene ningun metodo predefinido
  //y getSelectedFrame() me devuelv un JInternalFrame no el JIFUsuari que he
  //creado al llamar a loadUsuarioForm
    Desktop1.getSelectedFrame().Guardar(); //ERROR ERROR ERROR

  }

  private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {                                          
//CREO UNA NUEVA JInternalFrame JIFUsuario
    loadUsuarioForm();
  }                                          
 
  /**
   * @param args the command line arguments
   */
  public static void main(String args[]) {
    java.awt.EventQueue.invokeLater(new Runnable() {
      public void run() {
        new frmPrincipal().setVisible(true);
      }
    });
  }

  protected void loadUsuarioForm() {
            panUsuariABM JPABM;
            JIFUsuario JNuevoUsuario = new JIFUsuari("Usuarios",this,true,false);
           
            Desktop1.add(JNouUsuari);
            //Load the FormWarehouse
            JNuevoUsuario .setVisible(true);
            JNuevoUsuario .show();
            try{
                    JNuevoUsuario .setIcon(false);
                    JNuevoUsuario .setSelected(true);
            }catch(PropertyVetoException e){
            }
  }

 
  // Variables declaration - do not modify
  private javax.swing.JDesktopPane Desktop1;
  private javax.swing.JButton btnGuardar;
  private javax.swing.JMenu jMenu1;
  private javax.swing.JMenuBar jMenuBar1;
  private javax.swing.JMenuItem jMenuItem1;
  private javax.swing.JToolBar jtbToolBar;
  // End of variables declaration
 
}


//La clase JIFUsuario es la JInternalFrameAltaBajaModificacion que yo he creado...
public class JIFUsuario extends JInternalFrame {
  JPanel JPContainer = new JPanel();
  String vDades[];
  frmPrincipal frmMain;
  javax.swing.JLabel lblBoto = new javax.swing.JLabel();
  boolean bBuscar;
  boolean bRetornaDades;
 
  Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
       
  /** Creates a new instance of frmUsuari */
  public JIFUsuario(String sTit, frmPrincipal getPadreFrame, boolean getbBuscar, boolean getbRetornaDades) {
   
    //------- Incio propieadades Poner la etiqueta y las propiedades iniciales    
    super("Usuarios",true,true,true,true);
    bBuscar=getbBuscar;
    bRetornaDades=getbRetornaDades;
    this.setTitle(sTit);
   
    JPContainer.setLayout(null);

    frmMain = getPadreFrame;

    getContentPane().add(JPContainer);
    setSize(747,450);
    setLocation((screen.width - 747)/2,((screen.height-450)/2)-45);
    setFrameIcon(new ImageIcon("images/customer.png"));
    //-------End de las propiedades

  }

  public void Guardar() {
   //AQUI GUARDARIAMOS LOS DATOS PERO NO PUEDO LLAMARLO
   //DESDE Desktop1.getSelectedFrame().Guardar();

  }
 
}

MUCHAS GRACIAS.

JuanCebolla

  • Nuevo Miembro
  • *
  • Mensajes: 11
    • Ver Perfil
Re: Jtoolbar Puede Comunicarse Con Jinternalframe
« Respuesta #1 en: Jueves 15 de Febrero de 2007, 18:33 »
0
SOLUCIONADO:

private void btnGuardarActionPerformed(java.awt.event.ActionEvent evt) {
//SOLUCIONADO

    JIFUsuari JIFAux;
    JIFAux = (JIFUsuari) Desktop1.getSelectedFrame();
    JIFAux.Guardar();

}