Hola, muy buenas a todos.
Tengo un problema a la hora de mostrar el panel de otras clases sobre un Jframe principal en el que tengo definido un jtoolbar. Este jtoolbar tiene una serie de botones, y mi propósito es que al pulsarlos aparezcan los componentes definidos en otra clase distinta de donde esta el Jframe.
Mi intención es crear una aplicacion tipo MDI donde el Jframe con el jtoolbar actue como contenedor y las otras clases definan los formularios para cada una.
Y no consigo que al pulsar un boton se muestre el panel de la clase correspondiente.
No se si sera porque me falta definir algun tipo de contenedor o añadir alguna extension.
Este es el código de la clase principal:
public class NewJFrame extends javax.swing.JFrame {
/** Creates new form NewJFrame */
public NewJFrame() {
initComponents();
}
private void initComponents() {
jToolBar1 = new javax.swing.JToolBar();
jButtonEnviar = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstan ts.EXIT_ON_CLOSE);
setResizable(false);
jToolBar1.setBorder(javax.swing.BorderFactory.crea teEtchedBorder());
jButtonEnviar.setText("Enviar SMS");
jButtonEnviar.setHorizontalAlignment(javax.swing.S wingConstants.LEADING);
jButtonEnviar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButtonEnviarActionPerformed(evt);
}
});
jToolBar1.add(jButtonEnviar);
jButtonEnviar.getAccessibleContext().setAccessible Parent(null);
org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(org.jdesktop.layout.Gro upLayout.LEADING)
.add(org.jdesktop.layout.GroupLayout.TRAILING, jToolBar1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 315, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(org.jdesktop.layout.Gro upLayout.LEADING)
.add(layout.createSequentialGroup()
.add(jToolBar1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 44, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.addContainerGap(329, Short.MAX_VALUE))
);
pack();
}
private void jButtonEnviarActionPerformed(java.awt.event.Action Event evt) {
//Aqui supongo que habria que crear un nuevo objeo de la clase correspondiente, pero no encuentro la manera de que aparaezca.
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new NewJFrame().setVisible(true);
}
});
}
// Variables declaration
private javax.swing.JButton jButtonEnviar;
private javax.swing.JToolBar jToolBar1;
// End of variables declaration
La otra clase tiene el siguiente formato:
public class EnviarSMS extends javax.swing.JPanel {
/** Creates new form EnviarSMS */
public EnviarSMS() {
initComponents();
}
private void initComponents() {
jScrollPane1 = new javax.swing.JScrollPane();
jTextArea1 = new javax.swing.JTextArea();
jTextArea1.setColumns(20);
jTextArea1.setRows(5);
jScrollPane1.setViewportView(jTextArea1);
org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(this);
this.setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(org.jdesktop.layout.Gro upLayout.LEADING)
.add(layout.createSequentialGroup()
.add(45, 45, 45)
.add(jScrollPane1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.addContainerGap(117, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(org.jdesktop.layout.Gro upLayout.LEADING)
.add(layout.createSequentialGroup()
.add(66, 66, 66)
.add(jScrollPane1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.addContainerGap(197, Short.MAX_VALUE))
);
}// </editor-fold>
// Variables declaration - do not modify
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTextArea jTextArea1;
// End of variables declaration
}