Godoy, o código tá meio extenso. =/
Não precisa ler ele todo nao. =/
[code]
public class MainFrame extends javax.swing.JFrame {
/** Creates new form MainFrame */
public MainFrame() {
initComponents();
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
desktopPanel = new javax.swing.JDesktopPane();
internalFrameEdit = new javax.swing.JInternalFrame();
labelTitleEditContact = new javax.swing.JLabel();
panelDataEntered2 = new javax.swing.JPanel();
labelContactNameSearch = new javax.swing.JLabel();
contactNameSearch = new javax.swing.JTextField();
buttonSearch = new javax.swing.JButton();
panelDataEntered3 = new javax.swing.JPanel();
labelContactNameEdited = new javax.swing.JLabel();
contactNameEdited = new javax.swing.JTextField();
labelContactNumberEdited = new javax.swing.JLabel();
contactNumberEdited = new javax.swing.JTextField();
buttonSalvar2 = new javax.swing.JButton();
internalFrameDelete = new javax.swing.JInternalFrame();
internalFrameRegister = new javax.swing.JInternalFrame();
labelTitleRegisterContact = new javax.swing.JLabel();
panelDataEntered = new javax.swing.JPanel();
labelContactName = new javax.swing.JLabel();
contactName = new javax.swing.JTextField();
labelContactNumber = new javax.swing.JLabel();
contactNumber = new javax.swing.JTextField();
buttonSalvar = new javax.swing.JButton();
menuBar = new javax.swing.JMenuBar();
menuArquivo = new javax.swing.JMenu();
intemMenuFechar = new javax.swing.JMenuItem();
menuExibir = new javax.swing.JMenu();
menuOpcoes = new javax.swing.JMenu();
itemMenuNovo = new javax.swing.JMenuItem();
itemMenuEditar = new javax.swing.JMenuItem();
itemMenuExcluir = new javax.swing.JMenuItem();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("Agenda Eletronica");
setBounds(new java.awt.Rectangle(0, 0, 0, 0));
setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
setResizable(false);
desktopPanel.setBackground(new java.awt.Color(204, 204, 204));
internalFrameEdit.setClosable(true);
internalFrameEdit.setIconifiable(true);
internalFrameEdit.setTitle("Editar Contato");
internalFrameEdit.setNormalBounds(new java.awt.Rectangle(0, 20, 350, 120));
internalFrameEdit.setVisible(true);
internalFrameEdit.getContentPane().setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.CENTER, 5, 10));
labelTitleEditContact.setFont(new java.awt.Font("Tahoma", 0, 16)); // NOI18N
labelTitleEditContact.setForeground(new java.awt.Color(51, 153, 255));
labelTitleEditContact.setText("Digite o nome do contato");
internalFrameEdit.getContentPane().add(labelTitleEditContact);
panelDataEntered2.setLayout(new java.awt.GridLayout(1, 0, 5, 5));
labelContactNameSearch.setText("Nome do contato:");
panelDataEntered2.add(labelContactNameSearch);
contactNameSearch.setAutoscrolls(false);
panelDataEntered2.add(contactNameSearch);
buttonSearch.setText("Buscar");
panelDataEntered2.add(buttonSearch);
internalFrameEdit.getContentPane().add(panelDataEntered2);
panelDataEntered3.setMinimumSize(new java.awt.Dimension(170, 79));
panelDataEntered3.setLayout(new java.awt.GridLayout(3, 2, 5, 5));
labelContactNameEdited.setText("Nome do Contato:");
panelDataEntered3.add(labelContactNameEdited);
contactNameEdited.setEditable(false);
contactNameEdited.setEnabled(false);
panelDataEntered3.add(contactNameEdited);
labelContactNumberEdited.setText("Telefone do Contato:");
panelDataEntered3.add(labelContactNumberEdited);
contactNumberEdited.setEditable(false);
contactNumberEdited.setEnabled(false);
panelDataEntered3.add(contactNumberEdited);
buttonSalvar2.setText("Salvar");
buttonSalvar2.setEnabled(false);
panelDataEntered3.add(buttonSalvar2);
internalFrameEdit.getContentPane().add(panelDataEntered3);
internalFrameEdit.setBounds(50, 40, 350, 220);
desktopPanel.add(internalFrameEdit, javax.swing.JLayeredPane.DEFAULT_LAYER);
internalFrameDelete.setClosable(true);
internalFrameDelete.setIconifiable(true);
internalFrameDelete.setMaximizable(true);
internalFrameDelete.setResizable(true);
internalFrameDelete.setPreferredSize(new java.awt.Dimension(300, 240));
javax.swing.GroupLayout internalFrameDeleteLayout = new javax.swing.GroupLayout(internalFrameDelete.getContentPane());
internalFrameDelete.getContentPane().setLayout(internalFrameDeleteLayout);
internalFrameDeleteLayout.setHorizontalGroup(
internalFrameDeleteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 284, Short.MAX_VALUE)
);
internalFrameDeleteLayout.setVerticalGroup(
internalFrameDeleteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 211, Short.MAX_VALUE)
);
internalFrameDelete.setBounds(140, 110, 300, 240);
desktopPanel.add(internalFrameDelete, javax.swing.JLayeredPane.DEFAULT_LAYER);
internalFrameRegister.setClosable(true);
internalFrameRegister.setIconifiable(true);
internalFrameRegister.setTitle("Cadastrar Novo");
internalFrameRegister.getContentPane().setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.CENTER, 5, 25));
labelTitleRegisterContact.setFont(new java.awt.Font("Tahoma", 0, 16));
labelTitleRegisterContact.setForeground(new java.awt.Color(0, 153, 255));
labelTitleRegisterContact.setText("Registro de um novo contato");
internalFrameRegister.getContentPane().add(labelTitleRegisterContact);
panelDataEntered.setLayout(new java.awt.GridLayout(3, 2, 0, 5));
labelContactName.setText("Nome do Contato: ");
panelDataEntered.add(labelContactName);
panelDataEntered.add(contactName);
labelContactNumber.setText("Telefone do Contato: ");
panelDataEntered.add(labelContactNumber);
panelDataEntered.add(contactNumber);
buttonSalvar.setText("Salvar");
panelDataEntered.add(buttonSalvar);
internalFrameRegister.getContentPane().add(panelDataEntered);
internalFrameRegister.setBounds(160, 10, 350, 190);
desktopPanel.add(internalFrameRegister, javax.swing.JLayeredPane.DEFAULT_LAYER);
menuArquivo.setText("Arquivo");
intemMenuFechar.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_Q, java.awt.event.InputEvent.CTRL_MASK));
intemMenuFechar.setText("Fechar");
menuArquivo.add(intemMenuFechar);
menuBar.add(menuArquivo);
menuExibir.setText("Exibir");
menuBar.add(menuExibir);
menuOpcoes.setText("Opcoes");
itemMenuNovo.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_N, java.awt.event.InputEvent.ALT_MASK));
itemMenuNovo.setText("Novo");
itemMenuNovo.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
itemMenuNovoActionPerformed(evt);
}
});
menuOpcoes.add(itemMenuNovo);
itemMenuEditar.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_E, java.awt.event.InputEvent.ALT_MASK));
itemMenuEditar.setText("Editar");
itemMenuEditar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
itemMenuEditarActionPerformed(evt);
}
});
menuOpcoes.add(itemMenuEditar);
itemMenuExcluir.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_X, java.awt.event.InputEvent.ALT_MASK));
itemMenuExcluir.setText("Excluir");
menuOpcoes.add(itemMenuExcluir);
menuBar.add(menuOpcoes);
setJMenuBar(menuBar);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(desktopPanel, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 651, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(desktopPanel, javax.swing.GroupLayout.DEFAULT_SIZE, 0, Short.MAX_VALUE)
.addContainerGap())
);
java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
setBounds((screenSize.width-667)/2, (screenSize.height-494)/2, 667, 494);
}// </editor-fold>//GEN-END:initComponents
private void itemMenuNovoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_itemMenuNovoActionPerformed
internalFrameRegister.setVisible(true);
}//GEN-LAST:event_itemMenuNovoActionPerformed
private void itemMenuEditarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_itemMenuEditarActionPerformed
internalFrameEdit.setVisible(true);
}//GEN-LAST:event_itemMenuEditarActionPerformed
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new MainFrame().setVisible(true);
}
});
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton buttonSalvar;
private javax.swing.JButton buttonSalvar2;
private javax.swing.JButton buttonSearch;
private javax.swing.JTextField contactName;
private javax.swing.JTextField contactNameEdited;
private javax.swing.JTextField contactNameSearch;
private javax.swing.JTextField contactNumber;
private javax.swing.JTextField contactNumberEdited;
private javax.swing.JDesktopPane desktopPanel;
private javax.swing.JMenuItem intemMenuFechar;
private javax.swing.JInternalFrame internalFrameDelete;
private javax.swing.JInternalFrame internalFrameEdit;
private javax.swing.JInternalFrame internalFrameRegister;
private javax.swing.JMenuItem itemMenuEditar;
private javax.swing.JMenuItem itemMenuExcluir;
private javax.swing.JMenuItem itemMenuNovo;
private javax.swing.JLabel labelContactName;
private javax.swing.JLabel labelContactNameEdited;
private javax.swing.JLabel labelContactNameSearch;
private javax.swing.JLabel labelContactNumber;
private javax.swing.JLabel labelContactNumberEdited;
private javax.swing.JLabel labelTitleEditContact;
private javax.swing.JLabel labelTitleRegisterContact;
private javax.swing.JMenu menuArquivo;
private javax.swing.JMenuBar menuBar;
private javax.swing.JMenu menuExibir;
private javax.swing.JMenu menuOpcoes;
private javax.swing.JPanel panelDataEntered;
private javax.swing.JPanel panelDataEntered2;
private javax.swing.JPanel panelDataEntered3;
// End of variables declaration//GEN-END:variables
}[/code]
Eu fiz um teste agora, para quando o user clicar no JMenuItem(itemMenuNovo) pra criar um novo contato com nome e telefone o evento faz o seguinte:
private void itemMenuNovoActionPerformed(java.awt.event.ActionEvent evt) {
desktopPanel.add(internalFrameRegister); //Adiciona ao desktopPanel o JInternalFrame que contem o formulário.
internalFrameRegister.setVisible(true); //Seta a visibilidade para true
}
(Detalhe: antes de eu testar isso, eu só tinha setado a visibilidade pra true.)
NO primeiro clique no ‘itemMenuNovo’ para criar um novo contato ele lança uma exception. E quando clico denovo ele abre o JInternalFrame :evil:
A exceção é na linha que eu adiciono ao desktopPanel: Exception in thread “AWT-EventQueue-0” java.lang.IllegalArgumentException: illegal component position.
Abraço