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 Principalpublic 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.