Olá pessoal estou estudando aqui como contruir um aplicativo desktop.
Bom tenho uma janela MDI, nessa janela coloquei uma JMenuBar, ele contem um menu chamado arquivo, quando eu clico nele ele me abre uma opção para chamar uma outra classe que no meu caso é o formulário de clientes.
Só que não estou conseguindo chamar um outro formulário através do menu.
Seria possivel pedir a gentileza de vcs para me ajudarem.
Abaixo está o código MDI.
import javax.swing.JDesktopPane;
import javax.swing.JFrame;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import java.awt.event.*;
public class MDI extends JFrame {
public MDI() {
super("Teste de Janelas MDI");
setBounds(100,100,800,600);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JDesktopPane desktop = new JDesktopPane();
add(desktop);
//ADICIONANDO A BARRA DE MENU
JMenuBar mnuBarra = new JMenuBar();
JMenu mnuArquivo = new JMenu("Arquivo");
JMenuItem mnuClientes = new JMenuItem("Clientes");
//mnuClientes.addActionListener(this);
mnuBarra.add(mnuArquivo);
mnuArquivo.add(mnuClientes);
setJMenuBar(mnuBarra);
setVisible(true);
}
public static void main(String[] args) {
new MDI();
}
}
Claro, desde que você nos ajude também.
Você poderia fazer a gentileza de colocar o seu código entre as tags code?
Se não sabe fazer isso, leia o seguinte link:
http://www.guj.com.br/posts/list/50115.java
PS: Esse código aí está incompleto? Cadê o local onde você registra o listener para o menu arquivo e chama o seu outro formulário?
Se não colocar o comando, não vai abrir mesmo. 
Este é o código MDI.
package pacote;
import javax.swing.JDesktopPane;
import javax.swing.JFrame;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import java.awt.event.*;
public class MDI extends JFrame implements ActionListener, KeyListener {
private static final long serialVersionUID = 1L;
//CRIANDO A BARRA DE MENU
JMenuBar mnuBarra = new JMenuBar();
JMenu mnuArquivo = new JMenu("Arquivo");
JMenuItem mnuClientes = new JMenuItem("Clientes");
public MDI() {
super("Teste de Janelas MDI");
setBounds(100,100,800,600);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JDesktopPane desktop = new JDesktopPane();
add(desktop);
mnuClientes.addActionListener(this);
mnuBarra.add(mnuArquivo);
mnuArquivo.add(mnuClientes);
setJMenuBar(mnuBarra);
setVisible(true);
}
public void actionPerformed(ActionEvent e){
Object o = e.getSource();
if(o == mnuClientes){
Clientes c = new Clientes();
c.criarTela();
}
}
public static void main(String[] args) {
new MDI();
}
public void keyPressed(KeyEvent e) {
// TODO Auto-generated method stub
}
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
}
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub
}
}
Este é o código Clientes.
OBS: Só fiz para ilustrar o estudo.
package pacote;
import javax.swing.*;
public class Clientes {
JFrame f = new JFrame();
public void criarTela(){
f.setTitle("Cadastro de clientes");
f.setSize(290,150);
f.setLocation(150,200);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
}
}
Gostaria que quando o MDI chama o formulário clientes ele abre dentro do MDI, neste caso quando eu maximizo ele ele sobrepoe o MDI.
Gostaria que vcs me ajuda.
Obrigado.
Nesse caso, Clientes não pode ser um JFrame. Tem que ser um JInternalFrame. Esse InternalFrame será adicionado ao JDesktopPane.
Dá uma lida aqui:
http://java.sun.com/docs/books/tutorial/uiswing/components/internalframe.html
Há, obrigado pela dica, nesse exemplo que eu peguei at já tinha o que vc citou, eu que tirei e tentei fazer do meu jeito.
Vou tentar fazer aqui, caso eu não consigo posto outra mensagem.
Muito Obrigado pela ajuda e pela atenção.